type t
type 'a data
val empty : t
val is_empty : t -> Core_kernel__.Import.bool
val set : t -> 'a Key.t -> 'a data -> t
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 find_exn : t -> 'a Key.t -> 'a data
val add : t -> 'a Key.t -> 'a data -> [ `Ok of t | `Duplicate ]
val add_exn : t -> 'a Key.t -> 'a data -> t
val change : t -> 'a Key.t -> f:('a data Core_kernel__.Import.option -> 'a data Core_kernel__.Import.option) -> t
val change_exn : t -> 'a Key.t -> f:('a data -> 'a data) -> t
val update : t -> 'a Key.t -> f:('a data Core_kernel__.Import.option -> 'a data) -> t
val remove : t -> 'a Key.t -> t
val remove_by_id : t -> Key.Uid.t -> t
val to_alist : t -> Packed.t Core_kernel__.Import.list
val of_alist_exn : Packed.t Core_kernel__.Import.list -> t