Skip to main content
Module CLMap.BaseMap
val leaf : 'key key -> ('key, 'map) value -> 'map tval branch :
prefix:int ->
branching_bit:int ->
tree0:'map t ->
tree1:'map t ->
'map ttype !'map view = private | Empty : 'map0 view| Branch : {prefix : int;branching_bit : int;tree0 : 'map1 t;tree1 : 'map1 t;
} -> 'map1 view| Leaf : {key : 'key key;value : ('key, 'map2) value;
} -> 'map2 view
val is_empty : 'map t -> boolval view : 'a t -> 'a viewval find : 'key key -> 'map t -> ('key, 'map) valueval find_opt : 'key key -> 'map t -> ('key, 'map) value optionval singleton : 'a key -> ('a, 'b) value -> 'b tval cardinal : 'a t -> intval mem : 'key key -> 'map t -> boolval remove : 'key key -> 'map t -> 'map tval insert :
'a key ->
(('a, 'map) value option -> ('a, 'map) value) ->
'map t ->
'map tval update :
'a key ->
(('a, 'map) value option -> ('a, 'map) value option) ->
'map t ->
'map tval add : 'key key -> ('key, 'map) value -> 'map t -> 'map tval split : 'key key -> 'map t -> 'map t * ('key, 'map) value option * 'map ttype !'map polyiter = {f : 'a. 'a key -> ('a, 'map) value -> unit;
}type (!'acc, !'map) polyfold = {f : 'a. 'a key -> ('a, 'map) value -> 'acc -> 'acc;
}val fold : ('acc, 'map) polyfold -> 'map t -> 'acc -> 'acctype (!'acc, !'map) polyfold2 = {f : 'a. 'a key -> ('a, 'map) value -> ('a, 'map) value -> 'acc -> 'acc;
}val fold_on_nonequal_inter :
('acc, 'map) polyfold2 ->
'map t ->
'map t ->
'acc ->
'acctype (!'acc, !'map) polyfold2_union = {f : 'a. 'a key ->
('a, 'map) value option ->
('a, 'map) value option ->
'acc ->
'acc;
}val fold_on_nonequal_union :
('acc, 'map) polyfold2_union ->
'map t ->
'map t ->
'acc ->
'acctype !'map polypredicate = {f : 'a. 'a key -> ('a, 'map) value -> bool;
}type (!'map1, !'map2) polymap = {f : 'a. ('a, 'map1) value -> ('a, 'map2) value;
}val map : ('map, 'map) polymap -> 'map t -> 'map tval map_no_share : ('map1, 'map2) polymap -> 'map1 t -> 'map2 ttype (!'map1, !'map2) polymapi = {f : 'a. 'a key -> ('a, 'map1) value -> ('a, 'map2) value;
}val mapi : ('map, 'map) polymapi -> 'map t -> 'map tval mapi_no_share : ('map1, 'map2) polymapi -> 'map1 t -> 'map2 ttype (!'map1, !'map2) polyfilter_map = {f : 'a. 'a key -> ('a, 'map1) value -> ('a, 'map2) value option;
}type !'map polypretty = {f : 'a. Stdlib.Format.formatter -> 'a key -> ('a, 'map) value -> unit;
}val pretty :
?pp_sep:(Stdlib.Format.formatter -> unit -> unit) ->
'map polypretty ->
Stdlib.Format.formatter ->
'map t ->
unittype (!'map1, !'map2) polysame_domain_for_all2 = {f : 'a. 'a key -> ('a, 'map1) value -> ('a, 'map2) value -> bool;
}type !'map polycompare = {f : 'a. 'a key -> ('a, 'map) value -> ('a, 'map) value -> int;
}val disjoint : 'a t -> 'a t -> booltype (!'map1, !'map2, !'map3) polyunion = {f : 'a. 'a key -> ('a, 'map1) value -> ('a, 'map2) value -> ('a, 'map3) value;
}val idempotent_union : ('a, 'a, 'a) polyunion -> 'a t -> 'a t -> 'a ttype (!'map1, !'map2, !'map3) polyinter = {f : 'a. 'a key -> ('a, 'map1) value -> ('a, 'map2) value -> ('a, 'map3) value;
}val idempotent_inter : ('a, 'a, 'a) polyinter -> 'a t -> 'a t -> 'a tval nonidempotent_inter_no_share :
('a, 'b, 'c) polyinter ->
'a t ->
'b t ->
'c ttype (!'map1, !'map2, !'map3) polyinterfilter = {f : 'a. 'a key ->
('a, 'map1) value ->
('a, 'map2) value ->
('a, 'map3) value option;
}type (!'map1, !'map2, !'map3) polymerge = {f : 'a. 'a key ->
('a, 'map1) value option ->
('a, 'map2) value option ->
('a, 'map3) value option;
}val slow_merge :
('map1, 'map2, 'map3) polymerge ->
'map1 t ->
'map2 t ->
'map3 t