Module type Univ_map_intf.S

module type S = sig .. end

type t 
type 'a data 
include Invariant.S
val empty : t
val is_empty : t -> bool
val set : t -> 'a Key.t -> 'a data -> t
val mem : t -> 'a Key.t -> bool
val find : t -> 'a Key.t -> 'a data option
val find_exn : t -> 'a Key.t -> 'a data
val add : t ->
'a Key.t ->
'a data -> [ `Duplicate | `Ok of t ]
val add_exn : t -> 'a Key.t -> 'a data -> t
val change : t ->
'a Key.t ->
('a data option -> 'a data option) ->
t
val change_exn : t ->
'a Key.t ->
('a data -> 'a data) -> t
module Packed: sig .. end
val to_alist : t -> Packed.t list
val sexp_of_t : t -> Sexplib.Sexp.t