sig
module type S_WITHOUT_STATE =
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
module type S =
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 -> I.key list
val find' : I.key -> t -> I.img option
val find_or_add : create:(unit -> I.img) -> key:I.key -> map:t -> I.img
val iter : (I.key -> I.img -> unit) -> t -> unit
val fold : (I.key -> I.img -> 'a -> 'a) -> t -> 'a -> 'a
val make_write_equal :
(I.key -> I.key -> int) ->
(I.img -> I.img -> unit) -> t -> t -> I.key -> unit
val string_of_map : t -> string
val string_of_with_img : t -> string
type domain_var
val get_domain_var : t -> MapVar.S.domain_var
end
module Make :
functor
(DVar : sig
type t
val create : unit -> MapVar.Make.t
val merge : MapVar.Make.t -> MapVar.Make.t -> MapVar.Make.t
end) ->
functor
(Map : sig
type key
type img
type t
val empty : t
val is_empty : t -> bool
val add : key -> img -> t -> t
val find : key -> t -> img
val remove : key -> t -> t
val mem : key -> t -> bool
val iter : (key -> img -> unit) -> t -> unit
val map : (img -> img) -> t -> t
val mapi : (key -> img -> img) -> t -> t
val fold : (key -> img -> 'a -> 'a) -> t -> 'a -> 'a
val compare : t -> t -> int
val equal : t -> t -> bool
val add' : key -> img option -> t -> t
val find' : key -> t -> img option
val add_list : (key * img) list -> t -> t
val to_list : t -> (key * img) list
val from_list : (key * img) list -> t
val map_to_list : (key -> img -> 'a) -> t -> 'a list
val mapi_and_map_to_list :
(key -> img -> img * 'a) -> t -> t * 'a list
val domain : t -> key list
val fold_two :
(key -> img option -> img option -> 'a -> 'a) ->
'a -> t -> t -> 'a
val restrict : key list -> t -> t
val string_of : t -> string
val alias : img -> img -> unit
end) ->
functor (P : GenVars.PREFIX) ->
functor (O : GenVars.OBSERVER) ->
functor
(State : sig type obs = O.t val add_wl : obs -> unit end) ->
sig
type obs = O.t
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 = Map.key type img = Map.img end
val domain : t -> I.key list
val find' : I.key -> t -> I.img option
val find_or_add :
create:(unit -> I.img) -> key:I.key -> map:t -> I.img
val iter : (I.key -> I.img -> unit) -> t -> unit
val fold : (I.key -> I.img -> 'a -> 'a) -> t -> 'a -> 'a
val make_write_equal :
(I.key -> I.key -> int) ->
(I.img -> I.img -> unit) -> t -> t -> I.key -> unit
val string_of_map : t -> string
val string_of_with_img : t -> string
type domain_var = DVar.t
val get_domain_var : t -> domain_var
end
end