class Nil {} type Tree = Nil | ('T, Tree<'T>, Tree<'T>); let t: Tree = ( 3, ( 1, Nil(), ( 3, (1, Nil(), Nil()), (2, Nil(), Nil()) ) ), (2, Nil(), Nil()) );