sig
type t
val empty :
with_delta_activities:bool ->
Model.t -> (Nbr.t option * Nbr.t * int) list -> State_interpreter.t
val initialize :
bind:('a -> (bool * Rule_interpreter.t * State_interpreter.t -> 'a) -> 'a) ->
return:(bool * Rule_interpreter.t * State_interpreter.t -> 'a) ->
outputs:(Data.t -> unit) ->
Model.t ->
Counter.t ->
Rule_interpreter.t ->
State_interpreter.t ->
(Primitives.alg_expr * Primitives.elementary_rule) list -> 'a
val observables_values :
Model.t -> Rule_interpreter.t -> Counter.t -> Nbr.t array
val do_modifications :
outputs:(Data.t -> unit) ->
Model.t ->
Counter.t ->
Rule_interpreter.t ->
State_interpreter.t ->
Primitives.modification list ->
bool * Rule_interpreter.t * State_interpreter.t
val a_loop :
outputs:(Data.t -> unit) ->
dumpIfDeadlocked:bool ->
maxConsecutiveClash:int ->
Model.t ->
Counter.t ->
Rule_interpreter.t ->
State_interpreter.t -> bool * Rule_interpreter.t * State_interpreter.t
val end_of_simulation :
outputs:(Data.t -> unit) ->
Format.formatter ->
Model.t -> Counter.t -> Rule_interpreter.t -> State_interpreter.t -> unit
end