from Data.Either import :: Either
from StdOverloaded import class toString
-:: AST = AST [Function]
-
:: Function = Function [Char] [[Char]] Expression
-
:: Expression
= Lit Value
| Var [Char]
| App Expression Expression
| Lambda [Char] Expression
| Builtin [Char] [Expression]
- | Let [Char] Expression
+ | Let [Char] [[Char]] Expression Expression
:: Value
= Int Int
| TBool
| TFun Type Type
-instance toString AST, Function, Expression, Value, Type
+instance toString Expression, Value, Type