sig
exception EUnion of string
module type IMG =
sig
type t
val compare : GenVars.IMG.t -> GenVars.IMG.t -> int
val merge : GenVars.IMG.t -> GenVars.IMG.t -> GenVars.IMG.t
val normalize : GenVars.IMG.t -> GenVars.IMG.t
val string_of : GenVars.IMG.t -> string
end
module type PREFIX = sig val prefix : string end
module type OBSERVER =
sig
type t
val compare : GenVars.OBSERVER.t -> GenVars.OBSERVER.t -> int
val string_of : GenVars.OBSERVER.t -> string
val fire : GenVars.OBSERVER.t -> unit
end
module type STATE = sig type obs val add_wl : GenVars.STATE.obs -> unit end
module type VAR_WITHOUT_IMG =
sig
type obs
type t
val create : unit -> GenVars.VAR_WITHOUT_IMG.t
val compare :
GenVars.VAR_WITHOUT_IMG.t -> GenVars.VAR_WITHOUT_IMG.t -> int
val total_ord :
GenVars.VAR_WITHOUT_IMG.t -> GenVars.VAR_WITHOUT_IMG.t -> int
val add_alias :
GenVars.VAR_WITHOUT_IMG.t -> GenVars.VAR_WITHOUT_IMG.t -> unit
val do_normalize : GenVars.VAR_WITHOUT_IMG.t -> unit
val add_observer :
GenVars.VAR_WITHOUT_IMG.obs -> GenVars.VAR_WITHOUT_IMG.t -> unit
val remove_observer :
GenVars.VAR_WITHOUT_IMG.obs -> GenVars.VAR_WITHOUT_IMG.t -> unit
val string_of : GenVars.VAR_WITHOUT_IMG.t -> string
val reset : unit -> unit
val get_all_ts : unit -> GenVars.VAR_WITHOUT_IMG.t list
end
module type VAR =
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
val add_img : GenVars.VAR.img -> t -> unit
val get_img : t -> GenVars.VAR.img option
end
module type CVAR =
functor (Obs : OBSERVER) ->
sig
type obs = Obs.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
val add_img : img -> t -> unit
val get_img : t -> img option
end
module type MAKE =
functor (Pre : PREFIX) ->
functor (Obs : OBSERVER) ->
functor (Img : IMG) ->
functor
(State : sig type obs = Obs.t val add_wl : obs -> unit end) ->
sig
type obs = Obs.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 = Img.t
val add_img : img -> t -> unit
val get_img : t -> img option
end
module Make : MAKE
end