Keys
The type for keys whose lookup value is of type 'a
.
Maps
The type for heterogeneous value maps.
is_empty m
is true
iff m
is empty.
val mem : 'a key -> t -> bool
mem k m
is true
iff k
is bound in m
.
val add : 'a key -> 'a -> t -> t
add k v m
is m
with k
bound to v
.
val singleton : 'a key -> 'a -> t
singleton k v
is add k v empty
.
val rem : 'a key -> t -> t
rem k m
is m
with k
unbound.
val find : 'a key -> t -> 'a option
find k m
is the value of k
's binding in m
, if any.
val get : 'a key -> t -> 'a
get k m
is the value of k
's binding in m
.
val iter : (binding -> unit) -> t -> unit
iter f m
applies f
to all bindings of m
.
val fold : (binding -> 'a -> 'a) -> t -> 'a -> 'a
fold f m acc
folds over the bindings of m
with f
, starting with acc
val for_all : (binding -> bool) -> t -> bool
for_all p m
is true
iff all bindings of m
satisfy p
.
val exists : (binding -> bool) -> t -> bool
exists p m
is true
iff there exists a bindings of m
that satisfies p
.
filter p m
are the bindings of m
that satisfy p
.
cardinal m
is the number of bindings in m
.
any_binding m
is a binding of m
(if not empty).
get_any_binding m
is a binding of m
.
Functorial interface
The functorial interface allows to associate more information to the keys. For example a key name or a key value pretty-printer.
The type for key information.
module type S = sig ... end
Output signature of the functor Make
Functor for heterogeneous maps whose keys hold information of type Key_info.t