[debig adding support for single-argument apply
John Meacham <john@repetae.net>**20070313022151] hunk ./Grin/FromE.hs 318
+--doApply x y ty | getType y == tyUnit = App funcApply [x] ty
+doApply x y ty = App funcApply [x,y] ty
hunk ./Grin/FromE.hs 531
-        return (e :>>= v :-> App funcApply [v,a] ty)
+        return (e :>>= v :-> doApply v a ty)
hunk ./Grin/FromE.hs 534
-        app ty (e :>>= v :-> gApply v a) as
+        app ty (e :>>= v :-> doApply v a TyNode) as
hunk ./Grin/Grin.hs 38
-    gApply,
hunk ./Grin/Grin.hs 116
-gApply :: Val -> Val -> Exp
-gApply x y = App funcApply [x,y] TyNode
hunk ./Grin/Grin.hs 517
+         else fail $ "App apply arg doesn't match: " ++ show ap
+    typecheck te ap@(App fn [v] t) | fn == funcApply = do
+        [v'] <- mapM (typecheck te) [v]
+        if v' == TyNode then return t