datatype 'a tree = Tip | Node ('a tree) 'a ('a tree)
