type stree = | Leaf of int | Node of int * stree list function | Leaf i as tree | Node (i, _) as tree -> i, tree