Up
Module
Tree
Signature
type
('k, +'v) t = ('k, 'v,
Comparator.Poly.comparator_witness
)
Tree.t
val
t_of_sexp : (
Sexplib.Sexp.t
-> 'k) -> (
Sexplib.Sexp.t
-> 'v) ->
Sexplib.Sexp.t
-> ('k, 'v)
t
val
sexp_of_t : ('k ->
Sexplib.Sexp.t
) -> ('v ->
Sexplib.Sexp.t
) -> ('k, 'v)
t
->
Sexplib.Sexp.t
include
Core_map_intf.Creators_and_accessors2
with
type
('a, 'b)
t
:= ('a, 'b)
t
with
type
('a, 'b)
tree
:= ('a, 'b)
t
include
Core_map_intf.Creators2
type
('a, 'b) t
type
('a, 'b) tree
val
empty : (_, _)
t
val
singleton : 'a -> 'b -> ('a, 'b)
t
val
of_alist : ('a * 'b) list -> [
| `Ok
of
('a, 'b)
t
| `Duplicate_key
of
'a
]
val
of_alist_or_error : ('a * 'b) list -> ('a, 'b)
t
Or_error.t
val
of_alist_exn : ('a * 'b) list -> ('a, 'b)
t
val
of_alist_multi : ('a * 'b) list -> ('a, 'b list)
t
val
of_alist_fold : ('a * 'b) list -> init:'c -> f:('c -> 'b -> 'c) -> ('a, 'c)
t
val
of_alist_reduce : ('a * 'b) list -> f:('b -> 'b -> 'b) -> ('a, 'b)
t
val
of_sorted_array : ('a * 'b) array -> ('a, 'b)
t
Or_error.t
val
of_sorted_array_unchecked : ('a * 'b) array -> ('a, 'b)
t
val
of_tree : ('a, 'b)
tree
-> ('a, 'b)
t
val
gen : 'a
Quickcheck.Generator.t
-> 'b
Quickcheck.Generator.t
-> ('a, 'b)
t
Quickcheck.Generator.t
include
Core_map_intf.Accessors2
with
type
('a, 'b)
t
:= ('a, 'b)
t
with
type
('a, 'b)
tree
:= ('a, 'b)
tree
type
('a, 'b) t
type
('a, 'b) tree
val
invariants : (_, _)
t
-> bool
val
is_empty : (_, _)
t
-> bool
val
length : (_, _)
t
-> int
val
add : ('a, 'b)
t
-> key:'a -> data:'b -> ('a, 'b)
t
val
add_multi : ('a, 'b list)
t
-> key:'a -> data:'b -> ('a, 'b list)
t
val
remove_multi : ('a, 'b list)
t
-> 'a -> ('a, 'b list)
t
val
change : ('a, 'b)
t
-> 'a -> f:('b option -> 'b option) -> ('a, 'b)
t
val
update : ('a, 'b)
t
-> 'a -> f:('b option -> 'b) -> ('a, 'b)
t
val
find : ('a, 'b)
t
-> 'a -> 'b option
val
find_exn : ('a, 'b)
t
-> 'a -> 'b
val
remove : ('a, 'b)
t
-> 'a -> ('a, 'b)
t
val
mem : ('a, 'b)
t
-> 'a -> bool
val
iter : ('a, 'b)
t
-> f:(key:'a -> data:'b -> unit) -> unit
val
iteri : ('a, 'b)
t
-> f:(key:'a -> data:'b -> unit) -> unit
val
iter_keys : ('a, _)
t
-> f:('a -> unit) -> unit
val
iter2 : ('a, 'b)
t
-> ('a, 'c)
t
-> f:(key:'a -> data:[
| `Left
of
'b
| `Right
of
'c
| `Both
of
'b * 'c
] -> unit) -> unit
val
map : ('a, 'b)
t
-> f:('b -> 'c) -> ('a, 'c)
t
val
mapi : ('a, 'b)
t
-> f:(key:'a -> data:'b -> 'c) -> ('a, 'c)
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 : ('a, 'b)
t
-> ('a, 'c)
t
-> init:'d -> f:(key:'a -> data:[
| `Left
of
'b
| `Right
of
'c
| `Both
of
'b * 'c
] -> 'd -> 'd) -> 'd
val
filter : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> ('a, 'b)
t
val
filteri : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> ('a, 'b)
t
val
filter_keys : ('a, 'b)
t
-> f:('a -> bool) -> ('a, 'b)
t
val
filter_map : ('a, 'b)
t
-> f:('b -> 'c option) -> ('a, 'c)
t
val
filter_mapi : ('a, 'b)
t
-> f:(key:'a -> data:'b -> 'c option) -> ('a, 'c)
t
val
partition_mapi : ('a, 'b)
t
-> f:(key:'a -> data:'b -> [
| `Fst
of
'c
| `Snd
of
'd
]) -> ('a, 'c)
t
* ('a, 'd)
t
val
partition_map : ('a, 'b)
t
-> f:('b -> [
| `Fst
of
'c
| `Snd
of
'd
]) -> ('a, 'c)
t
* ('a, 'd)
t
val
partitioni_tf : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> ('a, 'b)
t
* ('a, 'b)
t
val
partition_tf : ('a, 'b)
t
-> f:('b -> bool) -> ('a, 'b)
t
* ('a, 'b)
t
val
compare_direct : ('b -> 'b -> int) -> ('a, 'b)
t
-> ('a, 'b)
t
-> int
val
equal : ('b -> 'b -> bool) -> ('a, 'b)
t
-> ('a, 'b)
t
-> bool
val
keys : ('a, _)
t
-> 'a list
val
data : (_, 'b)
t
-> 'b list
val
to_alist : ?key_order:[
| `Increasing
| `Decreasing
] -> ('a, 'b)
t
-> ('a * 'b) list
val
validate : name:('a -> string) -> 'b
Validate.check
-> ('a, 'b)
t
Validate.check
val
merge : ('a, 'b)
t
-> ('a, 'c)
t
-> f:(key:'a -> [
| `Left
of
'b
| `Right
of
'c
| `Both
of
'b * 'c
] -> 'd option) -> ('a, 'd)
t
val
symmetric_diff : ('a, 'b)
t
-> ('a, 'b)
t
-> data_equal:('b -> 'b -> bool) -> ('a, 'b)
Core_map_intf.Symmetric_diff_element.t
Sequence.t
val
min_elt : ('a, 'b)
t
-> ('a * 'b) option
val
min_elt_exn : ('a, 'b)
t
-> 'a * 'b
val
max_elt : ('a, 'b)
t
-> ('a * 'b) option
val
max_elt_exn : ('a, 'b)
t
-> 'a * 'b
val
for_all : (_, 'b)
t
-> f:('b -> bool) -> bool
val
for_alli : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> bool
val
exists : (_, 'b)
t
-> f:('b -> bool) -> bool
val
existsi : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> bool
val
count : (_, 'b)
t
-> f:('b -> bool) -> int
val
counti : ('a, 'b)
t
-> f:(key:'a -> data:'b -> bool) -> int
val
split : ('a, 'b)
t
-> 'a -> ('a, 'b)
t
* ('a * 'b) option * ('a, 'b)
t
val
fold_range_inclusive : ('a, 'b)
t
-> min:'a -> max:'a -> init:'c -> f:(key:'a -> data:'b -> 'c -> 'c) -> 'c
val
range_to_alist : ('a, 'b)
t
-> min:'a -> max:'a -> ('a * 'b) list
val
closest_key : ('a, 'b)
t
-> [
| `Greater_or_equal_to
| `Greater_than
| `Less_or_equal_to
| `Less_than
] -> 'a -> ('a * 'b) option
val
nth : ('a, 'b)
t
-> int -> ('a * 'b) option
val
rank : ('a, _)
t
-> 'a -> int option
val
to_tree : ('a, 'b)
t
-> ('a, 'b)
tree
val
to_sequence : ?order:[
| `Increasing_key
| `Decreasing_key
] -> ?keys_greater_or_equal_to:'a -> ?keys_less_or_equal_to:'a -> ('a, 'b)
t
-> ('a * 'b)
Sequence.t
val
obs : 'k
Quickcheck.Observer.t
-> 'v
Quickcheck.Observer.t
-> ('k, 'v)
t
Quickcheck.Observer.t
val
shrinker : 'k
Quickcheck.Shrinker.t
-> 'v
Quickcheck.Shrinker.t
-> ('k, 'v)
t
Quickcheck.Shrinker.t