definition module ast :: AST = AST [Function] :: Function = Function String [String] Expression :: Expression = Literal Value | Variable String | Apply Expression Expression | Lambda String Expression | Let String Expression Expression | Code String | .. :: Value = Int Int | Bool Bool | Char Char instance toString AST instance toString Function instance toString Expression instance toString Value