Module CCMixmap.Make

Parameters

X : ORD

Signature

type key = X.t
type t

A map containing values of different types, indexed by key.

val empty : t

Empty map.

val get : inj:'a injection ‑> key ‑> t ‑> 'a option

Get the value corresponding to this key, if it exists and belongs to the same key.

val add : inj:'a injection ‑> key ‑> 'a ‑> t ‑> t

Bind the key to the value, using inj.

val find : inj:'a injection ‑> key ‑> t ‑> 'a

Find the value for the given key, which must be of the right type.

val cardinal : t ‑> int

Number of bindings.

val remove : key ‑> t ‑> t

Remove the binding for this key.

val mem : inj:_ injection ‑> key ‑> t ‑> bool

Is the given key in the map, with the right type?

val iter_keys : f:(key ‑> unit) ‑> t ‑> unit

Iterate on the keys of this map.

val fold_keys : f:('a ‑> key ‑> 'a) ‑> x:'a ‑> t ‑> 'a

Fold over the keys.

Iterators

type 'a sequence = ('a ‑> unit) ‑> unit
val keys_seq : t ‑> key sequence

All the keys.

val bindings_of : inj:'a injection ‑> t ‑> (key * 'a) sequence

All the bindings that come from the corresponding injection.

type value =
| Value : ('a injection ‑> 'a option) ‑> value
val bindings : t ‑> (key * value) sequence

Iterate on all bindings.