sig
  val compile_bool :
    ?bwd_bisim:LKappa_group_action.bwd_bisim_info ->
    compileModeOn:bool ->
    ?origin:Operator.rev_dep ->
    Contact_map.t ->
    Pattern.PreEnv.t ->
    (LKappa.rule_mixture, int) Alg_expr.bool Locality.annot ->
    Pattern.PreEnv.t *
    (Pattern.id array list, int) Alg_expr.bool Locality.annot
  val compile_modifications_no_track :
    ?bwd_bisim:LKappa_group_action.bwd_bisim_info ->
    compileModeOn:bool ->
    Contact_map.t ->
    Pattern.PreEnv.t ->
    (LKappa.rule_mixture, Raw_mixture.t, int, LKappa.rule) Ast.modif_expr
    list -> Pattern.PreEnv.t * Primitives.modification list
  val compile_inits :
    ?rescale:float ->
    ?bwd_bisim:LKappa_group_action.bwd_bisim_info ->
    compileModeOn:bool ->
    Contact_map.t ->
    Model.t ->
    (LKappa.rule_mixture, Raw_mixture.t, int) Ast.init_statment list ->
    (Primitives.alg_expr * Primitives.elementary_rule) list
  val compile :
    outputs:(Data.t -> 'a) ->
    pause:((unit -> 'b) -> 'b) ->
    return:(Model.t * bool *
            (Primitives.alg_expr * Primitives.elementary_rule) list -> 'b) ->
    max_sharing:bool ->
    ?bwd_bisim:LKappa_group_action.bwd_bisim_info ->
    compileModeOn:bool ->
    ?overwrite_init:(LKappa.rule_mixture, Raw_mixture.t, int)
                    Ast.init_statment list ->
    ?rescale_init:float ->
    Signature.s ->
    unit NamedDecls.t ->
    Contact_map.t ->
    ('c, LKappa.rule_mixture, Raw_mixture.t, int, LKappa.rule) Ast.compil ->
    'b
  val build_initial_state :
    bind:('-> (bool * Rule_interpreter.t * State_interpreter.t -> 'a) -> 'a) ->
    return:(bool * Rule_interpreter.t * State_interpreter.t -> 'a) ->
    outputs:(Data.t -> unit) ->
    Counter.t ->
    Model.t ->
    with_trace:bool ->
    with_delta_activities:bool ->
    Random.State.t ->
    (Primitives.alg_expr * Primitives.elementary_rule) list -> 'a
end