sig
type t = Univ_map.t
val empty : t
val is_empty : t -> bool
module Key :
sig
type 'a t = 'a Univ_map.Key.t
val create : string -> ('a -> Std_internal.Sexp.t) -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
end
val set : t -> 'a Key.t -> 'a -> t
val mem : t -> 'a Key.t -> bool
val find : t -> 'a Key.t -> 'a option
val find_exn : t -> 'a Key.t -> 'a
val add : t -> 'a Key.t -> 'a -> [ `Duplicate | `Ok of t ]
val add_exn : t -> 'a Key.t -> 'a -> t
val change : t -> 'a Key.t -> ('a option -> 'a option) -> t
val change_exn : t -> 'a Key.t -> ('a -> 'a) -> t
module With_default :
sig
module Key :
sig
type 'a t = 'a Univ_map.With_default.Key.t
val create :
default:'a -> string -> ('a -> Std_internal.Sexp.t) -> 'a t
end
val set : t -> 'a Key.t -> 'a -> t
val find : t -> 'a Key.t -> 'a
val change : t -> 'a Key.t -> ('a -> 'a) -> t
end
module With_fold :
sig
module Key :
sig
type ('a, 'b) t = ('a, 'b) Univ_map.With_fold.Key.t
val create :
init:'b ->
f:('b -> 'a -> 'b) ->
string -> ('b -> Std_internal.Sexp.t) -> ('a, 'b) t
end
val set : t -> ('a, 'b) Key.t -> 'b -> t
val find : t -> ('a, 'b) Key.t -> 'b
val add : t -> ('a, 'b) Key.t -> 'a -> t
val change : t -> ('a, 'b) Key.t -> ('b -> 'b) -> t
end
module Multi :
sig
module Key :
sig
type 'a t = 'a Univ_map.Multi.Key.t
val create : string -> ('a -> Std_internal.Sexp.t) -> 'a t
end
val set : t -> 'a Key.t -> 'a list -> t
val find : t -> 'a Key.t -> 'a list
val add : t -> 'a Key.t -> 'a -> t
val change : t -> 'a Key.t -> ('a list -> 'a list) -> t
end
val sexp_of_t : t -> Sexplib.Sexp.t
end