`sig type +'a tree val empty : 'a BatAvlTree.tree val is_empty : 'a BatAvlTree.tree -> bool val make_tree : 'a BatAvlTree.tree -> 'a -> 'a BatAvlTree.tree -> 'a BatAvlTree.tree val create : 'a BatAvlTree.tree -> 'a -> 'a BatAvlTree.tree -> 'a BatAvlTree.tree val height : 'a BatAvlTree.tree -> int val left_branch : 'a BatAvlTree.tree -> 'a BatAvlTree.tree val right_branch : 'a BatAvlTree.tree -> 'a BatAvlTree.tree val root : 'a BatAvlTree.tree -> 'a val singleton_tree : 'a -> 'a BatAvlTree.tree val split_leftmost : 'a BatAvlTree.tree -> 'a * 'a BatAvlTree.tree val split_rightmost : 'a BatAvlTree.tree -> 'a * 'a BatAvlTree.tree val concat : 'a BatAvlTree.tree -> 'a BatAvlTree.tree -> 'a BatAvlTree.tree val iter : ('a -> unit) -> 'a BatAvlTree.tree -> unit val fold : ('a -> 'b -> 'b) -> 'a BatAvlTree.tree -> 'b -> 'b val enum : 'a BatAvlTree.tree -> 'a BatEnum.t val check : 'a BatAvlTree.tree -> bool val check_height_cache : 'a BatAvlTree.tree -> bool val check_height_balance : 'a BatAvlTree.tree -> bool end`