remove unnecessary
[fp.git] / src / HM / Parser.hs
index 47c4649..54e1e6a 100644 (file)
@@ -13,7 +13,7 @@
 
 module HM.Parser 
   ( tRead
 
 module HM.Parser 
   ( tRead
-  , parseTerm
+  , parseTypedTerm
   )  where
 
 import Data.Char (isAsciiLower, isAsciiUpper)
   )  where
 
 import Data.Char (isAsciiLower, isAsciiUpper)
@@ -46,7 +46,8 @@ instance Show Term where
 
 instance Show TypedTerm where
   show (NTTerm t) = show t
 
 instance Show TypedTerm where
   show (NTTerm t) = show t
-  show (TTerm t tp) = braced $ show t ++ " :: " ++ show tp 
+  show (TTerm (Var x) tp) = x ++ " :: " ++ show tp 
+  show (TTerm t tp) = braced (show t) ++ " :: " ++ show tp 
 
 instance Show Type where
   show (Primitive t) = t
 
 instance Show Type where
   show (Primitive t) = t
@@ -65,11 +66,13 @@ tRead s = case parseOnly (parseTypedTerm <* endOfInput) (T.pack s) of
 parseTerm :: Parser Term
 parseTerm = parseLet <|>
             parseApp <|>
 parseTerm :: Parser Term
 parseTerm = parseLet <|>
             parseApp <|>
+            parseBraces parseTerm <|>
             parseVar <|>
             parseLambda
 
 parseTermNoApp :: Parser Term
             parseVar <|>
             parseLambda
 
 parseTermNoApp :: Parser Term
-parseTermNoApp = parseLet <|>
+parseTermNoApp = parseBraces parseTerm <|>
+            parseLet <|>
             parseVar <|>
             parseLambda
 
             parseVar <|>
             parseLambda
 
@@ -82,13 +85,13 @@ parseTypeAndTerm p = do
 
 
 parseTypedTermNoApp :: Parser TypedTerm
 
 
 parseTypedTermNoApp :: Parser TypedTerm
-parseTypedTermNoApp = parseBraces parseTypedTerm <|>
-                      parseTypeAndTerm parseTermNoApp <|>
+parseTypedTermNoApp = parseTypeAndTerm parseTermNoApp <|>
+                      parseBraces parseTypedTerm <|>
                       (NTTerm <$> parseTermNoApp)
 
 parseTypedTerm :: Parser TypedTerm
                       (NTTerm <$> parseTermNoApp)
 
 parseTypedTerm :: Parser TypedTerm
-parseTypedTerm = parseBraces parseTypedTerm <|>
-                 parseTypeAndTerm parseTerm <|>
+parseTypedTerm = parseTypeAndTerm parseTerm <|>
+                 parseBraces parseTypedTerm <|>
                  (NTTerm <$> parseTerm)
 
 parseType :: Parser Type
                  (NTTerm <$> parseTerm)
 
 parseType :: Parser Type