sig   type key   type +'a t   val empty : 'CCWBTree.S.t   val is_empty : 'CCWBTree.S.t -> bool   val singleton : CCWBTree.S.key -> '-> 'CCWBTree.S.t   val mem : CCWBTree.S.key -> 'CCWBTree.S.t -> bool   val get : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a option   val get_exn : CCWBTree.S.key -> 'CCWBTree.S.t -> 'a   val nth : int -> 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option   val nth_exn : int -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a   val add : CCWBTree.S.key -> '-> 'CCWBTree.S.t -> 'CCWBTree.S.t   val remove : CCWBTree.S.key -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val update :     CCWBTree.S.key ->     ('a option -> 'a option) -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val cardinal : 'CCWBTree.S.t -> int   val weight : 'CCWBTree.S.t -> int   val fold :     f:('-> CCWBTree.S.key -> '-> 'b) -> x:'-> 'CCWBTree.S.t -> 'b   val mapi :     f:(CCWBTree.S.key -> '-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val map : f:('-> 'b) -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val iter : f:(CCWBTree.S.key -> '-> unit) -> 'CCWBTree.S.t -> unit   val split :     CCWBTree.S.key ->     'CCWBTree.S.t -> 'CCWBTree.S.t * 'a option * 'CCWBTree.S.t   val merge :     f:(CCWBTree.S.key -> 'a option -> 'b option -> 'c option) ->     'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val extract_min : 'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t   val extract_max : 'CCWBTree.S.t -> CCWBTree.S.key * 'a * 'CCWBTree.S.t   val choose : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) option   val choose_exn : 'CCWBTree.S.t -> CCWBTree.S.key * 'a   val random_choose :     Random.State.t -> 'CCWBTree.S.t -> CCWBTree.S.key * 'a   val add_list :     'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t   val of_list : (CCWBTree.S.key * 'a) list -> 'CCWBTree.S.t   val to_list : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) list   val add_seq :     'CCWBTree.S.t ->     (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t   val of_seq : (CCWBTree.S.key * 'a) CCWBTree.sequence -> 'CCWBTree.S.t   val to_seq : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.sequence   val add_gen :     'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t   val of_gen : (CCWBTree.S.key * 'a) CCWBTree.gen -> 'CCWBTree.S.t   val to_gen : 'CCWBTree.S.t -> (CCWBTree.S.key * 'a) CCWBTree.gen   val print :     CCWBTree.S.key CCWBTree.printer ->     'CCWBTree.printer -> 'CCWBTree.S.t CCWBTree.printer   val node_ :     CCWBTree.S.key ->     '-> 'CCWBTree.S.t -> 'CCWBTree.S.t -> 'CCWBTree.S.t   val balanced : 'CCWBTree.S.t -> bool end