sig
  val initialize :
    string option ->
    string option ->
    (string * string * string array) option -> Model.t -> unit
  val initial_inputs :
    Configuration.t ->
    Model.t ->
    Contact_map.t ->
    (Primitives.alg_expr * Primitives.elementary_rule) list ->
    filename:string -> unit
  val input_modifications :
    Model.t -> int -> Primitives.modification list -> unit
  val go : Data.t -> unit
  val close : ?event:int -> unit -> unit
end