Module MemTyped.RegisterShift

module RegisterShift: Model.Static(sig
type key = Lang.lfun 
type data = MemTyped.registered_shift 
val name : string
include Lang.Fun
end)

module E: E
type key = E.key 
type data = E.data 
module KEY: sig .. end
module MAP: FCMap.Make(KEY)
module SET: FCSet.Make(KEY)
val demon : (MAP.key -> E.data -> unit) list Pervasives.ref
type entries = {
   mutable ident : int;
   mutable index : E.data MAP.t;
   mutable lock : SET.t;
}
module ENTRIES: Datatype.Make(sig
type t = Model.Static.entries 
include Datatype.Serializable_undefined
val reprs : Model.Static.entries list
val name : string
end)
module REGISTRY: State_builder.Ref(ENTRIES)(sig
val name : string
val dependencies : State.t list
val default : unit -> Model.Static.entries
end)
val entries : unit -> entries
val mem : MAP.key -> bool
val find : MAP.key -> E.data
val get : MAP.key -> E.data option
val fire : MAP.key -> E.data -> unit
val callback : (MAP.key -> E.data -> unit) -> unit
val define : MAP.key -> E.data -> unit
val update : MAP.key -> E.data -> unit
val memoize : (MAP.key -> E.data) ->
MAP.key -> E.data
val compile : (MAP.key -> E.data) -> MAP.key -> unit
val iter : (MAP.key -> E.data -> unit) -> unit
val iter_sorted : (SET.elt -> E.data -> unit) -> unit