something something tuples
[minfp.git] / ast.dcl
1 definition module ast
2
3 from Data.Either import :: Either
4 from StdOverloaded import class toString
5
6 from int import :: Eval
7
8 :: Function = Function [Char] [[Char]] Expression
9
10 :: Expression
11 = Lit Value
12 | Var [Char]
13 | Tuple Expression Expression
14 | App Expression Expression
15 | Lambda [Char] Expression
16 | Let [([Char], Expression)] Expression
17
18 :: Value
19 = Int Int
20 | Bool Bool
21 | ** infix 9 Expression Expression
22 | Lambda` [Char] Expression
23 | Builtin (Expression -> Eval Expression)
24
25 instance toString Function, Expression, Value