type ('a, 'b) tree = Empty | Leaf of 'b | Node of 'a * ('a, 'b) tree
You probably want your nodes to have more than one child, although
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a, 'b) tree * 'a * ('a, 'b) tree
PS: , , Foo of bar * baz Foo of (bar * baz) : - Foo , , (bar * baz).