print update, alles liftm
[cc1516.git] / src / parse.icl
index 0860819..c28fb4c 100644 (file)
@@ -184,7 +184,7 @@ satTok t = top >>= \tok=:(pos, tv) -> if (eq t tok) (return tok) (fail <?> (prin
 
 parseSepList :: TokenValue (Parser Token a) -> Parser Token [a]
 parseSepList sep p = 
-       (some (p <* satTok sep) >>= \es->p >>= \e.pure $ reverse [e:es]) <|>
+       (liftM2 (\es->(\e->reverse [e:es])) (some (p <* satTok sep)) p) <|>
        (liftM pure p) <|> pure empty
 
 parseIdent :: Parser Token String
@@ -204,8 +204,8 @@ instance print FunDecl where
        print (FunDecl i as t vs ss) =
                ["\n", i, " (":printersperse "," as] ++
                [") :: ":print t] ++
-               ["{":printersperse "\n\t" vs] ++
-               ["\n":printStatements ss 1] ++ ["}"]
+               ["{\n\t":printersperse "\n\t" vs] ++
+               ["\n":printStatements ss 1] ++ ["}\n"]
 
 printStatements :: [Stmt] Int -> [String]
 printStatements [] i = []