+parseLit :: Parser Term
+parseLit = do
+ x <- parseLInt <|> parseLBool <|> parseLFun
+ return $! Lit x
+
+parseLFun :: Parser Literal
+parseLFun =
+ (string "If" >> return (LFunc If))
+
+parseLBool :: Parser Literal
+parseLBool =
+ (string "True" >> return (LBool True)) <|>
+ (string "False" >> return (LBool False))
+
+parseLInt :: Parser Literal
+parseLInt = do
+ x <- decimal
+ return $! LInt x
+