sig
type obs
type t
val create : unit -> t
val compare : t -> t -> int
val total_ord : t -> t -> int
val add_alias : t -> t -> unit
val do_normalize : t -> unit
val add_observer : obs -> t -> unit
val remove_observer : obs -> t -> unit
val string_of : t -> string
val reset : unit -> unit
val get_all_ts : unit -> t list
type img
module I : sig type key type img end
val domain : t -> MapVar.S_WITHOUT_STATE.I.key list
val find' :
MapVar.S_WITHOUT_STATE.I.key -> t -> MapVar.S_WITHOUT_STATE.I.img option
val find_or_add :
create:(unit -> MapVar.S_WITHOUT_STATE.I.img) ->
key:MapVar.S_WITHOUT_STATE.I.key -> map:t -> MapVar.S_WITHOUT_STATE.I.img
val iter :
(MapVar.S_WITHOUT_STATE.I.key -> MapVar.S_WITHOUT_STATE.I.img -> unit) ->
t -> unit
val fold :
(MapVar.S_WITHOUT_STATE.I.key -> MapVar.S_WITHOUT_STATE.I.img -> 'a -> 'a) ->
t -> 'a -> 'a
val make_write_equal :
(MapVar.S_WITHOUT_STATE.I.key -> MapVar.S_WITHOUT_STATE.I.key -> int) ->
(MapVar.S_WITHOUT_STATE.I.img -> MapVar.S_WITHOUT_STATE.I.img -> unit) ->
t -> t -> MapVar.S_WITHOUT_STATE.I.key -> unit
val string_of_map : t -> string
val string_of_with_img : t -> string
end