Module Using_comparator.TreeSource
Sourceval of_alist :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) list ->
[ `Ok of ('a, 'b, 'cmp) t | `Duplicate_key of 'a ] Sourceval of_alist_exn :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) list ->
('a, 'b, 'cmp) t Sourceval of_alist_multi :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) list ->
('a, 'b list, 'cmp) t Sourceval of_alist_fold :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) list ->
init:'c ->
f:('c -> 'b -> 'c) ->
('a, 'c, 'cmp) t Sourceval of_alist_reduce :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) list ->
f:('b -> 'b -> 'b) ->
('a, 'b, 'cmp) t Sourceval of_sorted_array_unchecked :
comparator:('a, 'cmp) Comparator.t ->
('a * 'b) array ->
('a, 'b, 'cmp) t Sourceval of_increasing_iterator_unchecked :
comparator:('a, 'cmp) Comparator.t ->
len:int ->
f:(int -> 'a * 'b) ->
('a, 'b, 'cmp) t Sourceval 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 ] Sourceval is_empty : ('a, 'b, 'cmp) t -> bool Sourceval length : ('a, 'b, 'cmp) t -> int Sourceval add :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
key:'a ->
data:'b ->
[ `Ok of ('a, 'b, 'cmp) t | `Duplicate ] Sourceval add_exn :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
key:'a ->
data:'b ->
('a, 'b, 'cmp) t Sourceval set :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
key:'a ->
data:'b ->
('a, 'b, 'cmp) t Sourceval add_multi :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b list, 'cmp) t ->
key:'a ->
data:'b ->
('a, 'b list, 'cmp) t Sourceval remove_multi :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b list, 'cmp) t ->
'a ->
('a, 'b list, 'cmp) t Sourceval find_multi :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b list, 'cmp) t ->
'a ->
'b list Sourceval change :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
'a ->
f:('b option -> 'b option) ->
('a, 'b, 'cmp) t Sourceval update :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
'a ->
f:('b option -> 'b) ->
('a, 'b, 'cmp) t Sourceval iter_keys : ('a, _, 'cmp) t -> f:('a -> unit) -> unit Sourceval iter : (_, 'b, 'cmp) t -> f:('b -> unit) -> unit Sourceval iteri : ('a, 'b, 'cmp) t -> f:(key:'a -> data:'b -> unit) -> unit Sourceval 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 Sourceval 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) ->
unit Sourceval map : ('a, 'b, 'cmp) t -> f:('b -> 'c) -> ('a, 'c, 'cmp) t Sourceval mapi : ('a, 'b, 'cmp) t -> f:(key:'a -> data:'b -> 'c) -> ('a, 'c, 'cmp) t Sourceval fold : ('a, 'b, _) t -> init:'c -> f:(key:'a -> data:'b -> 'c -> 'c) -> 'c Sourceval fold_right :
('a, 'b, _) t ->
init:'c ->
f:(key:'a -> data:'b -> 'c -> 'c) ->
'c Sourceval 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 Sourceval filter_keys :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:('a -> bool) ->
('a, 'b, 'cmp) t Sourceval filter :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:('b -> bool) ->
('a, 'b, 'cmp) t Sourceval filteri :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:(key:'a -> data:'b -> bool) ->
('a, 'b, 'cmp) t Sourceval filter_map :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:('b -> 'c option) ->
('a, 'c, 'cmp) t Sourceval filter_mapi :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:(key:'a -> data:'b -> 'c option) ->
('a, 'c, 'cmp) t Sourceval 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 Sourceval 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 Sourceval 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 Sourceval partition_tf :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
f:('b -> bool) ->
('a, 'b, 'cmp) t * ('a, 'b, 'cmp) t Sourceval compare_direct :
comparator:('a, 'cmp) Comparator.t ->
('b -> 'b -> int) ->
('a, 'b, 'cmp) t ->
('a, 'b, 'cmp) t ->
int Sourceval equal :
comparator:('a, 'cmp) Comparator.t ->
('b -> 'b -> bool) ->
('a, 'b, 'cmp) t ->
('a, 'b, 'cmp) t ->
bool Sourceval keys : ('a, _, _) t -> 'a list Sourceval data : (_, 'b, _) t -> 'b list Sourceval to_alist :
?key_order:[ `Increasing | `Decreasing ] ->
('a, 'b, _) t ->
('a * 'b) list Sourceval 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 Sourceval symmetric_diff :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
('a, 'b, 'cmp) t ->
data_equal:('b -> 'b -> bool) ->
('a * [ `Left of 'b | `Right of 'b | `Unequal of 'b * 'b ]) Sequence.t Sourceval fold_symmetric_diff :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
('a, 'b, 'cmp) t ->
data_equal:('b -> 'b -> bool) ->
init:'c ->
f:('c -> ('a * [ `Left of 'b | `Right of 'b | `Unequal of 'b * 'b ]) -> 'c) ->
'c Sourceval min_elt : ('a, 'b, 'cmp) t -> ('a * 'b) option Sourceval min_elt_exn : ('a, 'b, 'cmp) t -> 'a * 'b Sourceval max_elt : ('a, 'b, 'cmp) t -> ('a * 'b) option Sourceval max_elt_exn : ('a, 'b, 'cmp) t -> 'a * 'b Sourceval for_all : ('a, 'b, 'cmp) t -> f:('b -> bool) -> bool Sourceval for_alli : ('a, 'b, 'cmp) t -> f:(key:'a -> data:'b -> bool) -> bool Sourceval exists : ('a, 'b, 'cmp) t -> f:('b -> bool) -> bool Sourceval existsi : ('a, 'b, 'cmp) t -> f:(key:'a -> data:'b -> bool) -> bool Sourceval count : ('a, 'b, 'cmp) t -> f:('b -> bool) -> int Sourceval counti : ('a, 'b, 'cmp) t -> f:(key:'a -> data:'b -> bool) -> int Sourceval split :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
'a ->
('a, 'b, 'cmp) t * ('a * 'b) option * ('a, 'b, 'cmp) t Sourceval 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 ] Sourceval 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 Sourceval range_to_alist :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
min:'a ->
max:'a ->
('a * 'b) list Sourceval 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) option Sourceval nth :
comparator:('a, 'cmp) Comparator.t ->
('a, 'b, 'cmp) t ->
int ->
('a * 'b) option Sourceval to_tree : ('a, 'b, 'cmp) t -> ('a, 'b, 'cmp) t Sourceval 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 Sourceval binary_search :
comparator:('k, 'cmp) Comparator.t ->
('k, 'v, 'cmp) t ->
compare:(key:'k -> data:'v -> 'key -> int) ->
[ `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) option Sourceval 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) option Sourceval empty_without_value_restriction : (_, _, _) t