datatype ('label) tree = Node of 'label * 'label tree list; fun sum(Node(a,nil)) = a | sum(Node(a,t::ts)) = sum(t) + sum(Node(a,ts)); val t = Node(3, [ Node(4,nil), Node(5, [Node(7,nil)]), Node(6,nil) ]); sum t;