Universal/heterogeneous maps, 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 = 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