1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
datatype t = A | B val a = A val b = B datatype foo = C of t val c = C a datatype list = Nil | Cons of {Head : int, Tail : list} val nil = Nil val l1 = Cons {Head = 0, Tail = nil} datatype term = App of term * term | Abs of term -> term