module Make: functor (
Key_info
:
KEY_INFO
) ->
S
with type 'a Key.info = 'a Key_info.t
Functor for heterogeneous maps whose keys hold information
of type Key_info.t
Keys
type 'a
key
The type for keys whose lookup value is of type 'a
.
module Key: sig
.. end
Keys.
Maps
type
t
The type for heterogeneous value maps.
val empty : t
empty
is the empty map.
val is_empty : t -> bool
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
.
Raises Invalid_argument
if k
is not bound in m
.
type
binding =
The type for bindings.
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
.
val filter : (binding -> bool) -> t -> t
filter p m
are the bindings of m
that satisfy p
.
val cardinal : t -> int
cardinal m
is the number of bindings in m
.
val any_binding : t -> binding option
any_binding m
is a binding of m
(if not empty).
val get_any_binding : t -> binding
get_any_binding m
is a binding of m
.
Raises Invalid_argument
if m
is empty.