fun insert (tree, value) { case tree of Empty -> Node (value, Empty, Empty) | Node (x, left, right) -> if x > value then Node (x, insert (left, value), right) else Node (x, left, insert (right, value)) fi esac } var i, tree = Empty; for i := 0, i <= 10, i := i+1 do printf ("%s\n", tree.string); tree := insert (tree, i) od; printf ("%s\n", tree.string)