Up  – base  » Base  » Map  » Using_comparator  » TreeModule Using_comparator.Tree  val  empty : comparator:('a , 'cmp )  Comparator.t ->   ('a , _ , 'cmp )  t val  singleton : comparator:('a , 'cmp )  Comparator.t ->   'a  -> 'b  -> ('a , 'b , 'cmp )  t val  of_alist : comparator:('a , 'cmp )  Comparator.t ->  
('a  * 'b )  list-> [ `Ok of ('a , 'b , 'cmp )  t   | `Duplicate_key  of 'a  val  of_alist_exn : comparator:('a , 'cmp )  Comparator.t ->   ('a  * 'b )  list-> ('a , 'b , 'cmp )  t val  of_alist_multi : comparator:('a , 'cmp )  Comparator.t ->  
('a  * 'b )  list-> ('a , 'b  list'cmp )  t val  of_alist_fold : comparator:('a , 'cmp )  Comparator.t ->   ('a  * 'b )  list-> init:'c  ->  
f:('c  -> 'b  -> 'c )  ->   ('a , 'c , 'cmp )  t val  of_alist_reduce : comparator:('a , 'cmp )  Comparator.t ->   ('a  * 'b )  list-> f:('b  -> 'b  -> 'b ) 
->   ('a , 'b , 'cmp )  t val  of_sorted_array_unchecked : comparator:('a , 'cmp )  Comparator.t ->  
('a  * 'b )  array-> ('a , 'b , 'cmp )  t val  of_increasing_iterator_unchecked : comparator:('a , 'cmp )  Comparator.t ->   len:int ->  
f:(int ->   'a  * 'b )  ->   ('a , 'b , 'cmp )  t val  of_sequence : comparator:('a , 'cmp )  Comparator.t ->  
('a  * 'b )  Sequence.t -> [ `Ok of ('a , 'b , 'cmp )  t   | `Duplicate_key  of 'a  val  of_sequence_fold : comparator:('a , 'cmp )  Comparator.t ->   ('a  * 'b )  Sequence.t -> init:'c  ->  
f:('c  -> 'b  -> 'c )  ->   ('a , 'c , 'cmp )  t val  of_sequence_reduce : comparator:('a , 'cmp )  Comparator.t ->   ('a  * 'b )  Sequence.t -> f:('b  -> 'b  -> 'b )  ->  
('a , 'b , 'cmp )  t val  of_iteri : comparator:('a , 'cmp )  Comparator.t ->   iteri:(f:(key:'a  ->   data:'b  ->   unit)  ->  
unit)  ->   [ `Ok of ('a , 'b , 'cmp )  t   | `Duplicate_key  of 'a  val  of_tree : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t val  invariants : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> val  is_empty : ('a , 'b , 'cmp )  t -> val  length : ('a , 'b , 'cmp )  t -> val  add : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> key:'a  ->   data:'b  ->  
[ `Ok of ('a , 'b , 'cmp )  t   | `Duplicate  ] val  add_exn : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> key:'a  ->   data:'b  ->  
('a , 'b , 'cmp )  t val  set : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> key:'a  ->   data:'b  ->  
('a , 'b , 'cmp )  t val  add_multi : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b  list'cmp )  t -> key:'a  ->  
data:'b  ->   ('a , 'b  list'cmp )  t val  remove_multi : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b  list'cmp )  t -> 'a  -> ('a , 'b  list'cmp )  t val  find_multi : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b  list'cmp )  t -> 'a  -> 'b  listval  change : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> 'a  -> f:('b  option-> 'b  option  ->   ('a , 'b , 'cmp )  t val  update : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> 'a  -> f:('b  option-> 'b )  ->   ('a , 'b , 'cmp )  t val  find : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> 'a  -> 'b  optionval  find_exn : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> 'a  -> 'b val  remove : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> 'a  -> ('a , 'b , 'cmp )  t val  mem : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> 'a  -> val  iter_keys : ('a , _ , 'cmp )  t -> f:('a  ->   ->   unitval  iter : (_ , 'b , 'cmp )  t -> f:('b  ->   ->   unitval  iteri : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   unit)  ->   unitval  iteri_until : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   Base__Map_intf.Continue_or_stop.t )  ->   Base__Map_intf.Finished_or_unfinished.t val  iter2 : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> ('a , 'c , 'cmp )  t -> f:(key:'a  ->  
data:[ `Left of 'b   | `Right  of 'c | `Both  of 'b  * 'c   ->   unit)  ->   unitval  map : ('a , 'b , 'cmp )  t -> f:('b  -> 'c )  ->   ('a , 'c , 'cmp )  t val  mapi : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   'c )  ->   ('a , 'c , 'cmp )  t val  fold : ('a , 'b , _ )  t -> init:'c  ->   f:(key:'a  ->   data:'b  ->   'c  -> 'c )  ->   'c val  fold_right : ('a , 'b , _ )  t -> init:'c  ->   f:(key:'a  ->   data:'b  ->   'c  -> 'c )  ->   'c val  fold2 : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> ('a , 'c , 'cmp )  t -> init:'d  ->   f:(key:'a  ->  
data:[ `Left of 'b   | `Right  of 'c | `Both  of 'b  * 'c   ->   'd  -> 'd )  ->   'd val  filter_keys : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:('a  ->   ->  
('a , 'b , 'cmp )  t val  filter : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:('b  ->   ->  
('a , 'b , 'cmp )  t val  filteri : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->  
bool)  ->   ('a , 'b , 'cmp )  t val  filter_map : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> f:('b  -> 'c  option  ->   ('a , 'c , 'cmp )  t val  filter_mapi : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:(key:'a  ->  
data:'b  ->   'c  option  ->   ('a , 'c , 'cmp )  t val  partition_mapi : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:(key:'a  ->  
data:'b  ->   ('c , 'd )  Either.t   ->   ('a , 'c , 'cmp )  t ('a , 'd , 'cmp )  t val  partition_map : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> f:('b  -> ('c , 'd )  Either.t   ->   ('a , 'c , 'cmp )  t ('a , 'd , 'cmp )  t val  partitioni_tf : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:(key:'a  ->  
data:'b  ->   bool)  ->   ('a , 'b , 'cmp )  t ('a , 'b , 'cmp )  t val  partition_tf : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> f:('b  ->   ->  
('a , 'b , 'cmp )  t ('a , 'b , 'cmp )  t val  compare_direct : comparator:('a , 'cmp )  Comparator.t ->  
('b  -> 'b  ->   -> ('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t -> val  equal : comparator:('a , 'cmp )  Comparator.t ->  
('b  -> 'b  ->   -> ('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t -> val  keys : ('a , _ , _ )  t -> 'a  listval  data : (_ , 'b , _ )  t -> 'b  listval  to_alist : ?key_order:[ `Increasing | `Decreasing  ]  ->  
('a , 'b , _ )  t -> ('a  * 'b )  listval  merge : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> ('a , 'c , 'cmp )  t -> f:(key:'a  ->  
[ `Left of 'b   | `Right  of 'c | `Both  of 'b  * 'c   -> 'd  option  ->  
('a , 'd , 'cmp )  t val  symmetric_diff : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t -> data_equal:('b  -> 'b  ->   ->  
('a  * [ `Left of 'b   | `Right  of 'b | `Unequal  of 'b  * 'b  )  Sequence.t val  fold_symmetric_diff : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t -> data_equal:('b  -> 'b  ->   ->   init:'c  ->  
f:('c  -> ('a  * [ `Left of 'b   | `Right  of 'b | `Unequal  of 'b  * 'b  )  -> 'c )  ->   'c val  min_elt : ('a , 'b , 'cmp )  t -> ('a  * 'b )  optionval  min_elt_exn : ('a , 'b , 'cmp )  t -> 'a  * 'b val  max_elt : ('a , 'b , 'cmp )  t -> ('a  * 'b )  optionval  max_elt_exn : ('a , 'b , 'cmp )  t -> 'a  * 'b val  for_all : ('a , 'b , 'cmp )  t -> f:('b  ->   ->   boolval  for_alli : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   bool)  ->   boolval  exists : ('a , 'b , 'cmp )  t -> f:('b  ->   ->   boolval  existsi : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   bool)  ->   boolval  count : ('a , 'b , 'cmp )  t -> f:('b  ->   ->   intval  counti : ('a , 'b , 'cmp )  t -> f:(key:'a  ->   data:'b  ->   bool)  ->   intval  split : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> 'a  -> ('a , 'b , 'cmp )  t ('a  * 'b )  option('a , 'b , 'cmp )  t val  append : comparator:('a , 'cmp )  Comparator.t ->   lower_part:('a , 'b , 'cmp )  t ->  
upper_part:('a , 'b , 'cmp )  t ->  
[ `Ok of ('a , 'b , 'cmp )  t   | `Overlapping_key_ranges  ] val  fold_range_inclusive : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> min:'a 
->   max:'a  ->   init:'c  ->   f:(key:'a  ->   data:'b  ->   'c  -> 'c )  ->   'c val  range_to_alist : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> min:'a  ->  
max:'a  ->   ('a  * 'b )  listval  closest_key : comparator:('a , 'cmp )  Comparator.t ->  
('a , 'b , 'cmp )  t -> [ `Greater_or_equal_to | `Greater_than  | `Less_or_equal_to  | `Less_than  ]  -> 'a  -> ('a  * 'b )  optionval  nth : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> int ->   ('a  * 'b )  optionval  nth_exn : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> int ->   'a  * 'b val  rank : comparator:('a , 'cmp )  Comparator.t ->   ('a , 'b , 'cmp )  t -> 'a  -> int option val  to_tree : ('a , 'b , 'cmp )  t -> ('a , 'b , 'cmp )  t val  to_sequence : comparator:('a , 'cmp )  Comparator.t ->  
?order:[ `Increasing_key | `Decreasing_key  ]  ->   ?keys_greater_or_equal_to:'a  ->  
?keys_less_or_equal_to:'a  ->   ('a , 'b , 'cmp )  t -> ('a  * 'b )  Sequence.t val  binary_search : comparator:('k , 'cmp )  Comparator.t ->  
('k , 'v , 'cmp )  t -> compare:(key:'k  ->   data:'v  ->   'key  ->   ->  
[ `Last_strictly_less_than | `Last_less_than_or_equal_to  | `Last_equal_to  | `First_equal_to  | `First_greater_than_or_equal_to  | `First_strictly_greater_than  ]  -> 'key  -> ('k  * 'v )  optionval  binary_search_segmented : comparator:('k , 'cmp )  Comparator.t ->  
('k , 'v , 'cmp )  t -> segment_of:(key:'k  ->   data:'v  ->   [ `Left | `Right  ] )  ->  
[ `Last_on_left | `First_on_right  ]  -> ('k  * 'v )  optionval  empty_without_value_restriction : (_ , _ , _ )  t