3 from Data.Either import :: Either
4 from StdOverloaded import class toString
6 from int import :: Eval
8 :: Function = Function [Char] [[Char]] Expression
13 | App Expression Expression
14 | Lambda [Char] Expression
15 | Let [([Char], Expression)] Expression
20 | Lambda` [Char] Expression
21 | Builtin (Expression -> Eval Expression)
23 instance toString Function, Expression, Value