Up – base » Base » Map » Using_comparator » TreeModule Using_comparator.Tree
val empty : comparator :('k , 'cmp ) Base__.Comparator.t -> ('k , 'a , 'cmp ) t
val singleton :
comparator :('k , 'cmp ) Base__.Comparator.t ->
'k ->
'v ->
('k , 'v , 'cmp ) t
val map_keys :
comparator :('k2 , 'cmp2 ) Base__.Comparator.t ->
('k1 , 'v , 'cmp1 ) t ->
f :('k1 -> 'k2 ) ->
[ `Duplicate_key of 'k2 | `Ok of ('k2 , 'v , 'cmp2 ) t ]
val map_keys_exn :
comparator :('k2 , 'cmp2 ) Base__.Comparator.t ->
('k1 , 'v , 'cmp1 ) t ->
f :('k1 -> 'k2 ) ->
('k2 , 'v , 'cmp2 ) t
val transpose_keys :
comparator :('k1 , 'cmp1 ) Base__.Comparator.t ->
comparator :('k2 , 'cmp2 ) Base__.Comparator.t ->
('k1 , ('k2 , 'a , 'cmp2 ) t , 'cmp1 ) t ->
('k2 , ('k1 , 'a , 'cmp1 ) t , 'cmp2 ) t
val of_sorted_array :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) array ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val of_sorted_array_unchecked :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) array ->
('k , 'v , 'cmp ) t
val of_increasing_iterator_unchecked :
comparator :('k , 'cmp ) Base__.Comparator.t ->
len :int ->
f :(int -> 'k * 'v ) ->
('k , 'v , 'cmp ) t
val of_alist :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) list ->
[ `Duplicate_key of 'k | `Ok of ('k , 'v , 'cmp ) t ]
val of_alist_or_error :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) list ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val of_alist_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) list ->
('k , 'v , 'cmp ) t
val of_alist_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) list ->
('k , 'v list , 'cmp ) t
val of_alist_fold :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v1 ) list ->
init :'v2 ->
f :('v2 -> 'v1 -> 'v2 ) ->
('k , 'v2 , 'cmp ) t
val of_alist_reduce :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) list ->
f :('v -> 'v -> 'v ) ->
('k , 'v , 'cmp ) t
val of_increasing_sequence :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val of_sequence :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
[ `Duplicate_key of 'k | `Ok of ('k , 'v , 'cmp ) t ]
val of_sequence_or_error :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val of_sequence_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
('k , 'v , 'cmp ) t
val of_sequence_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
('k , 'v list , 'cmp ) t
val of_sequence_fold :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v1 ) Base__.Sequence.t ->
init :'v2 ->
f :('v2 -> 'v1 -> 'v2 ) ->
('k , 'v2 , 'cmp ) t
val of_sequence_reduce :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k * 'v ) Base__.Sequence.t ->
f :('v -> 'v -> 'v ) ->
('k , 'v , 'cmp ) t
val of_list_with_key :
comparator :('k , 'cmp ) Base__.Comparator.t ->
'v list ->
get_key :('v -> 'k ) ->
[ `Duplicate_key of 'k | `Ok of ('k , 'v , 'cmp ) t ]
val of_list_with_key_or_error :
comparator :('k , 'cmp ) Base__.Comparator.t ->
'v list ->
get_key :('v -> 'k ) ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val of_list_with_key_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
'v list ->
get_key :('v -> 'k ) ->
('k , 'v , 'cmp ) t
val of_list_with_key_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
'v list ->
get_key :('v -> 'k ) ->
('k , 'v list , 'cmp ) t
val of_iteri :
comparator :('k , 'cmp ) Base__.Comparator.t ->
iteri :(f :(key :'k -> data :'v -> unit) -> unit) ->
[ `Duplicate_key of 'k | `Ok of ('k , 'v , 'cmp ) t ]
val of_iteri_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
iteri :(f :(key :'k -> data :'v -> unit) -> unit) ->
('k , 'v , 'cmp ) t
val of_tree :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t
val invariants :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
bool
val is_empty : ('a , 'b , 'c ) t -> bool
val length : ('a , 'b , 'c ) t -> int
val add :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
key :'k ->
data :'v ->
[ `Duplicate | `Ok of ('k , 'v , 'cmp ) t ]
val add_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
key :'k ->
data :'v ->
('k , 'v , 'cmp ) t
val set :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
key :'k ->
data :'v ->
('k , 'v , 'cmp ) t
val add_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v list , 'cmp ) t ->
key :'k ->
data :'v ->
('k , 'v list , 'cmp ) t
val remove_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v list , 'cmp ) t ->
'k ->
('k , 'v list , 'cmp ) t
val find_multi :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v list , 'cmp ) t ->
'k ->
'v list
val change :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
f :('v option -> 'v option ) ->
('k , 'v , 'cmp ) t
val update :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
f :('v option -> 'v ) ->
('k , 'v , 'cmp ) t
val find :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
'v option
val find_exn :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
'v
val remove :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
('k , 'v , 'cmp ) t
val mem :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'a , 'cmp ) t ->
'k ->
bool
val iter_keys : ('k , 'a , 'b ) t -> f :('k -> unit) -> unit
val iter : ('a , 'v , 'b ) t -> f :('v -> unit) -> unit
val iteri : ('k , 'v , 'a ) t -> f :(key :'k -> data :'v -> unit) -> unit
val iteri_until :
('k , 'v , 'a ) t ->
f :(key :'k -> data :'v -> Base__Map_intf.Continue_or_stop.t ) ->
Base__Map_intf.Finished_or_unfinished.t
val iter2 :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v1 , 'cmp ) t ->
('k , 'v2 , 'cmp ) t ->
f :
(key :'k ->
data :[ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] ->
unit) ->
unit
val map : ('k , 'v1 , 'cmp ) t -> f :('v1 -> 'v2 ) -> ('k , 'v2 , 'cmp ) t
val mapi :
('k , 'v1 , 'cmp ) t ->
f :(key :'k -> data :'v1 -> 'v2 ) ->
('k , 'v2 , 'cmp ) t
val fold :
('k , 'v , 'a ) t ->
init :'acc ->
f :(key :'k -> data :'v -> 'acc -> 'acc ) ->
'acc
val fold_until :
('k , 'v , 'a ) t ->
init :'acc ->
f :
(key :'k ->
data :'v ->
'acc ->
('acc , 'final ) Base__.Container.Continue_or_stop.t ) ->
finish :('acc -> 'final ) ->
'final
val fold_right :
('k , 'v , 'a ) t ->
init :'acc ->
f :(key :'k -> data :'v -> 'acc -> 'acc ) ->
'acc
val fold2 :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v1 , 'cmp ) t ->
('k , 'v2 , 'cmp ) t ->
init :'acc ->
f :
(key :'k ->
data :[ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] ->
'acc ->
'acc ) ->
'acc
val filter_keys : ('k , 'v , 'cmp ) t -> f :('k -> bool) -> ('k , 'v , 'cmp ) t
val filter : ('k , 'v , 'cmp ) t -> f :('v -> bool) -> ('k , 'v , 'cmp ) t
val filteri :
('k , 'v , 'cmp ) t ->
f :(key :'k -> data :'v -> bool) ->
('k , 'v , 'cmp ) t
val filter_map :
('k , 'v1 , 'cmp ) t ->
f :('v1 -> 'v2 option ) ->
('k , 'v2 , 'cmp ) t
val filter_mapi :
('k , 'v1 , 'cmp ) t ->
f :(key :'k -> data :'v1 -> 'v2 option ) ->
('k , 'v2 , 'cmp ) t
val partition_mapi :
('k , 'v1 , 'cmp ) t ->
f :(key :'k -> data :'v1 -> ('v2 , 'v3 ) Base__.Either0.t ) ->
('k , 'v2 , 'cmp ) t * ('k , 'v3 , 'cmp ) t
val partition_map :
('k , 'v1 , 'cmp ) t ->
f :('v1 -> ('v2 , 'v3 ) Base__.Either0.t ) ->
('k , 'v2 , 'cmp ) t * ('k , 'v3 , 'cmp ) t
val partitioni_tf :
('k , 'v , 'cmp ) t ->
f :(key :'k -> data :'v -> bool) ->
('k , 'v , 'cmp ) t * ('k , 'v , 'cmp ) t
val partition_tf :
('k , 'v , 'cmp ) t ->
f :('v -> bool) ->
('k , 'v , 'cmp ) t * ('k , 'v , 'cmp ) t
val combine_errors :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , ('v , Base__.Info.t ) result , 'cmp ) t ->
(('k , 'v , 'cmp ) t , Base__.Info.t ) result
val compare_direct :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('v -> 'v -> int) ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t ->
int
val equal :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('v -> 'v -> bool) ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t ->
bool
val keys : ('k , 'a , 'b ) t -> 'k list
val data : ('a , 'v , 'b ) t -> 'v list
val to_alist :
?key_order :[ `Decreasing | `Increasing ] ->
('k , 'v , 'a ) t ->
('k * 'v ) list
val merge :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v1 , 'cmp ) t ->
('k , 'v2 , 'cmp ) t ->
f :
(key :'k ->
[ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] ->
'v3 option ) ->
('k , 'v3 , 'cmp ) t
val merge_skewed :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t ->
combine :(key :'k -> 'v -> 'v -> 'v ) ->
('k , 'v , 'cmp ) t
val symmetric_diff :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t ->
data_equal :('v -> 'v -> bool) ->
('k * [ `Left of 'v | `Right of 'v | `Unequal of 'v * 'v ] ) Base__.Sequence.t
val fold_symmetric_diff :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
('k , 'v , 'cmp ) t ->
data_equal :('v -> 'v -> bool) ->
init :'acc ->
f :
('acc ->
('k * [ `Left of 'v | `Right of 'v | `Unequal of 'v * 'v ] ) ->
'acc ) ->
'acc
val min_elt : ('k , 'v , 'a ) t -> ('k * 'v ) option
val min_elt_exn : ('k , 'v , 'a ) t -> 'k * 'v
val max_elt : ('k , 'v , 'a ) t -> ('k * 'v ) option
val max_elt_exn : ('k , 'v , 'a ) t -> 'k * 'v
val for_all : ('k , 'v , 'a ) t -> f :('v -> bool) -> bool
val for_alli : ('k , 'v , 'a ) t -> f :(key :'k -> data :'v -> bool) -> bool
val exists : ('k , 'v , 'a ) t -> f :('v -> bool) -> bool
val existsi : ('k , 'v , 'a ) t -> f :(key :'k -> data :'v -> bool) -> bool
val count : ('k , 'v , 'a ) t -> f :('v -> bool) -> int
val counti : ('k , 'v , 'a ) t -> f :(key :'k -> data :'v -> bool) -> int
val split :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
('k , 'v , 'cmp ) t * ('k * 'v ) option * ('k , 'v , 'cmp ) t
val split_le_gt :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
('k , 'v , 'cmp ) t * ('k , 'v , 'cmp ) t
val split_lt_ge :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
'k ->
('k , 'v , 'cmp ) t * ('k , 'v , 'cmp ) t
val append :
comparator :('k , 'cmp ) Base__.Comparator.t ->
lower_part :('k , 'v , 'cmp ) t ->
upper_part :('k , 'v , 'cmp ) t ->
[ `Ok of ('k , 'v , 'cmp ) t | `Overlapping_key_ranges ]
val subrange :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
lower_bound :'k Base__.Maybe_bound.t ->
upper_bound :'k Base__.Maybe_bound.t ->
('k , 'v , 'cmp ) t
val fold_range_inclusive :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
min :'k ->
max :'k ->
init :'acc ->
f :(key :'k -> data :'v -> 'acc -> 'acc ) ->
'acc
val range_to_alist :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
min :'k ->
max :'k ->
('k * 'v ) list
val closest_key :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
[ `Greater_or_equal_to | `Greater_than | `Less_or_equal_to | `Less_than ] ->
'k ->
('k * 'v ) option
val nth : ('k , 'v , 'cmp ) t -> int -> ('k * 'v ) option
val nth_exn : ('k , 'v , 'cmp ) t -> int -> 'k * 'v
val rank :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'a , 'cmp ) t ->
'k ->
int option
val to_tree : ('k , 'v , 'cmp ) t -> ('k , 'v , 'cmp ) t
val to_sequence :
comparator :('k , 'cmp ) Base__.Comparator.t ->
?order :[ `Decreasing_key | `Increasing_key ] ->
?keys_greater_or_equal_to :'k ->
?keys_less_or_equal_to :'k ->
('k , 'v , 'cmp ) t ->
('k * 'v ) Base__.Sequence.t
val binary_search :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
compare :(key :'k -> data :'v -> 'key -> int) ->
[ `First_equal_to
| `First_greater_than_or_equal_to
| `First_strictly_greater_than
| `Last_equal_to
| `Last_less_than_or_equal_to
| `Last_strictly_less_than ] ->
'key ->
('k * 'v ) option
val binary_search_segmented :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
segment_of :(key :'k -> data :'v -> [ `Left | `Right ] ) ->
[ `First_on_right | `Last_on_left ] ->
('k * 'v ) option
val binary_search_subrange :
comparator :('k , 'cmp ) Base__.Comparator.t ->
('k , 'v , 'cmp ) t ->
compare :(key :'k -> data :'v -> 'bound -> int) ->
lower_bound :'bound Base__.Maybe_bound.t ->
upper_bound :'bound Base__.Maybe_bound.t ->
('k , 'v , 'cmp ) t
val empty_without_value_restriction : ('a , 'b , 'c ) t