type t('a) = pri | Empty| Leaf('a)| Node of {l: t('a),v: 'a,r: t('a),h: int,
}
;let is_empty: t('a) => bool;let unsafe_two_elements: 'a => 'a => t('a);let cardinal: t('a) => int;let elements: t('a) => list('a);let iter: t('a) => ('a => unit) => unit;let fold: t('a) => 'c => ('a => 'c => 'c) => 'c;let for_all: t('a) => ('a => bool) => bool;let exists: t('a) => ('a => bool) => bool;let check: t('a) => unit;let bal: t('a) => 'a => t('a) => t('a);let remove_min_elt: t('a) => t('a);let singleton: 'a => t('a);let internal_merge: t('a) => t('a) => t('a);let internal_join: t('a) => 'a => t('a) => t('a);let internal_concat: t('a) => t('a) => t('a);let partition: t('a) => ('a => bool) => (t('a), t('a));let of_sorted_array: array('a) => t('a);let is_ordered: cmp:('a => 'a => int) => t('a) => bool;let invariant: cmp:('a => 'a => int) => t('a) => bool;