try letrec
[minfp.git] / main.icl
index d2b5114..910de46 100644 (file)
--- a/main.icl
+++ b/main.icl
@@ -24,8 +24,8 @@ chars f
 :: Mode = MHelp | MLex | MParse | MType | MInterpret | MGen
 :: Result
        = Lex [Token]
-       | Parse AST
-       | Type [([Char], Scheme)]
+       | Parse [Function]
+       | Type Expression
        | Interpret Value
        | Gen [String]
 
@@ -52,6 +52,6 @@ Start w
                MHelp = Left [usageInfo ("Usage: " +++ argv0 +++ " [options]\n") options]
                MLex = Lex <$> lex cs
                MParse = Parse <$> (lex cs >>= parse)
-               MType = Type <$> snd <$> (lex cs >>= parse >>= check)
-               MInterpret = Interpret <$> (lex cs >>= parse >>= check >>= int o fst)
-               MGen = Gen <$> (lex cs >>= parse >>= check >>= gen o fst)
+               MType = Type <$> (lex cs >>= parse >>= check)
+               MInterpret = Interpret <$> (lex cs >>= parse >>= check >>= int)
+               MGen = Gen <$> (lex cs >>= parse >>= check >>= gen)