Universal/heterogeneous maps.
These maps are useful for storing values of arbitrary type in a single map. In order
to recover a value, it must be looked up with exactly the Key.t
it was stored in.
In other words, given different Key.t
's from the same string
, one will not be able
to recover the key stored in the other one.
This is similar to Univ
in spirit.
include module type of Core_kernel__.Univ_map_intf
module Key = Core_kernel.Type_equal.Id
module type S : sig ... end
module type S1 : sig ... end
include S with type 'a S.data = 'a
val sexp_of_t : t ‑> Sexplib.Sexp.t
val invariant : t Base__.Invariant_intf.inv
val empty : t
val is_empty : t ‑> Core_kernel__.Import.bool
val mem : t ‑> 'a Key.t ‑> Core_kernel__.Import.bool
val mem_by_id : t ‑> Key.Uid.t ‑> Core_kernel__.Import.bool
val find : t ‑> 'a Key.t ‑> 'a data Core_kernel__.Import.option
val change : t ‑> 'a Key.t ‑> f:('a data Core_kernel__.Import.option ‑> 'a data Core_kernel__.Import.option) ‑> t
module Packed : sig ... end
val to_alist : t ‑> Packed.t Core_kernel__.Import.list
module With_default : sig ... end
keys with associated default values, so that find
is no longer partial
module With_fold : sig ... end
keys that map to an accumulator value with an associated fold operation