module type Accessors =sig..end
type ('a, 'b, 'comparator) t
type ('a, 'b, 'comparator) tree
type 'a key
type ('a, 'comparator, 'z) options
val is_empty : ('a, 'b, 'c) t -> boolval length : ('a, 'b, 'c) t -> intlength mapmap.val add : ('k, 'comparator,
('k, 'v, 'comparator) t ->
key:'k key ->
data:'v -> ('k, 'v, 'comparator) t)
optionsval add_multi : ('k, 'comparator,
('k, 'v list, 'comparator) t ->
key:'k key ->
data:'v -> ('k, 'v list, 'comparator) t)
optionsval change : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key ->
('v option -> 'v option) -> ('k, 'v, 'comparator) t)
optionschange map key f updates the given map by changing the value stored
under key according to f. Thus, for example, one might write:
change m k (function None -> Some 0 | Some x -> Some (x + 1))
to produce a new map where the integer stored under key k is
incremented by one (treating an unknown key as zero)
val find : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key -> 'v option)
optionsNot_found if none
such existsval find_exn : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key -> 'v)
optionsval remove : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key ->
('k, 'v, 'comparator) t)
optionsval mem : ('k, 'comparator,
('k, 'a, 'comparator) t ->
'k key -> bool)
optionsmem map key tests whether map contains a binding for keyval iter : ('k, 'v, 'a) t ->
f:(key:'k key -> data:'v -> unit) -> unitval map : ('k, 'v1, 'comparator) t ->
f:('v1 -> 'v2) -> ('k, 'v2, 'comparator) tval mapi : ('k, 'v1, 'comparator) t ->
f:(key:'k key -> data:'v1 -> 'v2) ->
('k, 'v2, 'comparator) tmap, but function takes both key and data as argumentsval fold : ('k, 'v, 'b) t ->
init:'a ->
f:(key:'k key -> data:'v -> 'a -> 'a) -> 'aval fold_right : ('k, 'v, 'b) t ->
init:'a ->
f:(key:'k key -> data:'v -> 'a -> 'a) -> 'aval filter : ('k, 'comparator,
('k, 'v, 'comparator) t ->
f:(key:'k key -> data:'v -> bool) ->
('k, 'v, 'comparator) t)
optionsval filter_map : ('k, 'comparator,
('k, 'v1, 'comparator) t ->
f:('v1 -> 'v2 option) -> ('k, 'v2, 'comparator) t)
optionsval filter_mapi : ('k, 'comparator,
('k, 'v1, 'comparator) t ->
f:(key:'k key -> data:'v1 -> 'v2 option) ->
('k, 'v2, 'comparator) t)
optionsfilter_map, but function takes both key and data as argumentsval compare_direct : ('k, 'comparator,
('v -> 'v -> int) ->
('k, 'v, 'comparator) t ->
('k, 'v, 'comparator) t -> int)
optionsval equal : ('k, 'comparator,
('v -> 'v -> bool) ->
('k, 'v, 'comparator) t ->
('k, 'v, 'comparator) t -> bool)
optionsequal cmp m1 m2 tests whether the maps m1 and m2 are equal, that is, contain
equal keys and associate them with equal data. cmp is the equality predicate used
to compare the data associated with the keys.val keys : ('k, 'a, 'b) t -> 'k key listval data : ('a, 'v, 'b) t -> 'v listval to_alist : ('k, 'v, 'a) t ->
('k key * 'v) listval merge : ('k, 'comparator,
('k, 'v1, 'comparator) t ->
('k, 'v2, 'comparator) t ->
f:(key:'k key ->
[ `Both of 'v1 * 'v2 | `Left of 'v1 | `Right of 'v2 ] -> 'v3 option) ->
('k, 'v3, 'comparator) t)
optionsval min_elt : ('k, 'v, 'a) t ->
('k key * 'v) optionmin_elt map(key, data) pair corresponding to the minimum key in
map, None if empty.val min_elt_exn : ('k, 'v, 'a) t -> 'k key * 'vval max_elt : ('k, 'v, 'a) t ->
('k key * 'v) optionmax_elt map(key, data) pair corresponding to the maximum key in
map, and None if map is empty.val max_elt_exn : ('k, 'v, 'a) t -> 'k key * 'vval for_all : ('k, 'v, 'a) t -> f:('v -> bool) -> boolval exists : ('k, 'v, 'a) t -> f:('v -> bool) -> boolval fold_range_inclusive : ('k, 'comparator,
('k, 'v, 'comparator) t ->
min:'k key ->
max:'k key ->
init:'a ->
f:(key:'k key -> data:'v -> 'a -> 'a) -> 'a)
optionsfold_range_inclusive t ~min ~max ~init ~f
folds f (with initial value ~init) over all keys (and their associated values)
that are in the range min, max (inclusive).val range_to_alist : ('k, 'comparator,
('k, 'v, 'comparator) t ->
min:'k key ->
max:'k key ->
('k key * 'v) list)
optionsrange_to_alist t ~min ~max returns an associative list of the elements whose
keys lie in min, max (inclusive), with the smallest key being at the head of the
list.val prev_key : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key ->
('k key * 'v) option)
optionsprev_key t k returns the largest (key, value) pair in t with key less than k
next_key t k returns the smallest (key, value) pair in t with key greater than k
val next_key : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key ->
('k key * 'v) option)
optionsrank t k if k is in t, returns the number of keys strictly less than k in t,
otherwise Noneval rank : ('k, 'comparator,
('k, 'v, 'comparator) t ->
'k key -> int option)
optionsval to_tree : ('k, 'v, 'comparator) t ->
('k key, 'v, 'comparator)
tree