try letrec
[minfp.git] / parse.icl
index e17ad02..c35f78a 100644 (file)
--- a/parse.icl
+++ b/parse.icl
@@ -74,8 +74,8 @@ pChainl op p = foldl (flip ($)) <$> p <*> many (flip <$> op <*> p)
 pChainr :: (Parser (a a -> a)) (Parser a) -> Parser a
 pChainr op p = flip ($) <$> p <*> (flip <$> op <*> pChainr op p) <|> p
 
-parse :: [Token] -> Either [String] AST
-parse ts = case runStateT (AST <$> pAST <* pEof) {zero & tokens=ts} of
+parse :: [Token] -> Either [String] [Function]
+parse ts = case runStateT (pAST <* pEof) {zero & tokens=ts} of
        Right (a, _) = Right a
        Left e = Left e
 where