Univ_mapmodule type S = sig ... endmodule type S1 = sig ... endmodule type Key = sig ... endmodule type Data = sig ... endmodule Type_id_key : Key with type 'a t = 'a Base.Type_equal.Id.tinclude S with type 'a data = 'a and module Key := Type_id_keyval sexp_of_t : t -> Sexplib0.Sexp.tinclude Base.Invariant.S with type t := tval invariant : t -> unitval empty : tval singleton : 'a Type_id_key.t -> 'a data -> tval set : t -> key:'a Type_id_key.t -> data:'a data -> tval mem : t -> 'a Type_id_key.t -> Base.boolval mem_by_id : t -> Base.Type_equal.Id.Uid.t -> Base.boolval find : t -> 'a Type_id_key.t -> 'a data Base.optionval find_exn : t -> 'a Type_id_key.t -> 'a dataval add :
t ->
key:'a Type_id_key.t ->
data:'a data ->
[ `Ok of t | `Duplicate ]val add_exn : t -> key:'a Type_id_key.t -> data:'a data -> tval change :
t ->
'a Type_id_key.t ->
f:('a data Base.option -> 'a data Base.option) ->
tval change_exn : t -> 'a Type_id_key.t -> f:('a data -> 'a data) -> tval update : t -> 'a Type_id_key.t -> f:('a data Base.option -> 'a data) -> tval remove : t -> 'a Type_id_key.t -> tval remove_by_id : t -> Base.Type_equal.Id.Uid.t -> tmodule Packed : sig ... endto_alist t returns all values in t, in increasing order of key type-id name.
val type_equal :
(t, Packed.t Base.Map.M(Base.Type_equal.Id.Uid).t) Base.Type_equal.tmodule Key = Base.Type_equal.IdThis binding is convenient because existing call sites often refer to Univ_map.Key.create.
module Merge
(Key : Key)
(Input1_data : Data)
(Input2_data : Data)
(Output_data : Data) :
sig ... endmodule Merge1
(Key : Key)
(Input1_data : sig ... end)
(Input2_data : sig ... end)
(Output_data : sig ... end) :
sig ... endmodule With_default : sig ... endkeys with associated default values, so that find is no longer partial
module With_fold : sig ... endkeys that map to an accumulator value with an associated fold operation
module Multi : sig ... endlist-accumulating keys with a default value of the empty list