1
types 'v binop = 'v => 'v => 'v
2
datatype ('a,'v) expr = Cex 'v
3
| Vex 'a
4
| Bex ('v binop) (('a,'v) expr) (('a,'v) expr)