sig
  exception Error of string
  type config = { mutable max_micro_reactions : int; }
  val cfg : Simul.config
  type stimulus = Fsm_dyn.loc * Expr.value
  type response = Fsm_dyn.loc * Expr.value
  type reaction =
      Types.date * string * Stimuli.stimuli list * Simul.response list *
      string
  type context = {
    c_date : Types.date;
    c_inputs : (string * (Types.typ * Expr.value)) list;
    c_outputs : (string * (Types.typ * Expr.value)) list;
    c_fns : (string * (Types.typ * Expr.value)) list;
    c_csts : (string * (Types.typ * Expr.value)) list;
    c_vars : (string * (Types.typ * Expr.value)) list;
    c_evs : (string * (Types.typ * Expr.value)) list;
    c_fsms : Fsm_dyn.t list * Fsm_dyn.t list;
  }
  exception OverReaction of Types.date
  val react :
    Types.date ->
    Simul.context ->
    Simul.stimulus list -> Simul.context * Simul.response list
  val run : Sysm.t -> Simul.context * (Types.date * Simul.response list) list
  val dump_context : Simul.context -> unit
  val dump_reaction : int * Fsm_dyn.event list -> unit
end