BatAvlTreeInternals of ISet and IMap, usable as generic tree library
val empty : 'a treeval is_empty : 'a tree -> boolcreate l v r is similar to make_tree l v r but performs no rebalancing; in other words, you should use this only when you know that l and r are already balanced.
val height : 'a tree -> intval root : 'a tree -> 'aval singleton_tree : 'a -> 'a treeval iter : ('a -> unit) -> 'a tree -> unitval fold : ('a -> 'b -> 'b) -> 'a tree -> 'b -> 'bval check : 'a tree -> boolCheck that the tree is balanced according to the AVL tree rules. An AVL tree is balanced when for every node the height of the subnodes differs by at most 1.