sig
type state = {
graph : Edges.t;
time : float;
event : int;
connected_components : Agent.SetMap.Set.t Mods.IntMap.t option;
}
type summary = { unary_distances : (int * int) option; }
val init_state : with_connected_components:bool -> Replay.state
val do_step :
Signature.s ->
Replay.state -> Trace.step -> Replay.state * Replay.summary
val is_step_triggerable : Replay.state -> Trace.step -> bool
val is_step_triggerable_on_edges : Edges.t -> Trace.step -> bool
val tests_pass_on :
Edges.t -> Instantiation.concrete Instantiation.test list list -> bool
val cc_of_state :
Replay.state ->
Pattern.PreEnv.t ->
Pattern.PreEnv.t * ((int * int) list * Pattern.cc * Pattern.id) list
end