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)