3 from Data.Either import :: Either
4 from StdOverloaded import class toString
6 from int import :: Eval
8 :: Function = Function [Char] [[Char]] Expression
9 :: TypeDef = TypeDef [Char] [[Char]] [([Char], [Type])]
14 | App Expression Expression
15 | Lambda [Char] Expression
16 | Let [([Char], Expression)] Expression
21 | ** infix 9 Expression Expression
22 | Lambda` [Char] Expression
23 | Builtin (Expression -> Eval Expression)
30 | (-->) infixr 9 Type Type
32 instance toString Function, Expression, Value, Type, TypeDef