module Hmap:sig
..end
v0.8.1 - homepage
type 'a
key
'a
.module Key:sig
..end
type
t
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
.Invalid_argument
if k
is not bound in m
.type
binding =
| |
B : |
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
.Invalid_argument
if m
is empty.
The functorial interface allows to associate more information to the
keys. For example a key name or a key value pretty-printer.
module type KEY_INFO =sig
..end
module type S =sig
..end
Hmap.Make
module Make:
Key_info.t