1
datatype expr = Var string | Lam string expr | App expr expr
2
| Data data
3
and data = Bool bool | Num nat
4
| Closure string expr "(string * data)list"