u
[cc1516.git] / parse.icl
index 766f1ce..004c1f4 100644 (file)
--- a/parse.icl
+++ b/parse.icl
@@ -75,9 +75,10 @@ parseFunType :: Parser Token Type
 parseFunType = satTok DoubleColonToken *> parseFT
        where
         parseFT :: Parser Token Type
-               parseFT = (liftM2 (->>) 
-                               ((parseBBraces parseFT <|> parseType) <* satTok ArrowToken)
-                               parseFT) <|> parseType
+               parseFT = (liftM2 (->>) (parseSF <* satTok ArrowToken) (parseFT)) <|>
+                       parseSF
+               parseSF :: Parser Token Type
+               parseSF = parseBBraces parseFT <|> parseType
 
 parseVarDecl :: Parser Token VarDecl
 parseVarDecl = liftM4 VarDecl