strictness, ci
[minfp.git] / parse.icl
index b80bebb..847f1b3 100644 (file)
--- a/parse.icl
+++ b/parse.icl
@@ -25,7 +25,7 @@ derive gPrint Token
 
 instance toString Token where toString t = printToString t
 
-lex :: [Char] -> Either [String] [Token]
+lex :: ![Char] -> Either [String] [Token]
 lex [] = pure []
 lex ['//\n':ts] = lex ts
 lex ['//',t:ts] = lex ['/','/':ts]
@@ -95,7 +95,7 @@ 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] [Either TypeDef Function]
+parse :: ![Token] -> Either [String] [Either TypeDef Function]
 parse ts = case runParser (many (Right <$> pFunction <|> Left <$> pTypeDef) <* pEof) ts [] of
        (Left e, _, _) = Left e
        (Right a, _, r) = sequence [reparse r a\\a<-a]