functor (I : Ode_interface_sig.Interface->
  sig
    type ode_var_id
    type ('a, 'b) network
    type enriched_rule
    type rule_id
    type connected_component_id
    val get_preprocessed_ast : Run_cli_args.t -> I.preprocessed_ast
    val get_ast : Run_cli_args.t -> I.ast
    val to_ast : I.ast -> Ast.parsing_compil
    val preprocess : Run_cli_args.t -> I.ast -> I.preprocessed_ast
    val get_compil :
      ?bwd_bisim:LKappa_group_action.bwd_bisim_info ->
      rule_rate_convention:Remanent_parameters_sig.rate_convention ->
      ?reaction_rate_convention:Remanent_parameters_sig.rate_convention ->
      show_reactions:bool ->
      count:Ode_args.count ->
      compute_jacobian:bool ->
      Run_cli_args.t -> I.preprocessed_ast -> I.compil
    val init :
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val reset :
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val network_from_compil :
      ?max_size:int ->
      dotnet:bool ->
      smash_reactions:bool ->
      ignore_obs:bool ->
      Remanent_parameters_sig.parameters ->
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val get_reactions :
      ('a, 'b) Odes.Make.network ->
      ((Odes.Make.ode_var_id list * Odes.Make.ode_var_id list *
        Odes.Make.ode_var_id Locality.annot list * I.rule) *
       int)
      list
    val export_network :
      command_line:string ->
      command_line_quotes:string ->
      ?data_file:string ->
      ?init_t:float ->
      max_t:float ->
      ?plot_period:float ->
      ?compute_jacobian:bool ->
      ?propagate_constants:bool ->
      ?show_time_advance:bool ->
      ?nonnegative:bool ->
      ?initial_step:float ->
      ?max_step:float ->
      ?abstol:float ->
      ?reltol:float ->
      Remanent_parameters_sig.parameters ->
      Loggers.t ->
      Loggers.t ->
      Loggers.t ->
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val get_comment : Odes.Make.enriched_rule -> string
    val get_rule_id_with_mode :
      Odes.Make.enriched_rule ->
      Odes.Make.rule_id * Rule_modes.arity * Rule_modes.direction
    val get_rule : Odes.Make.enriched_rule -> I.rule
    val get_lhs : Odes.Make.enriched_rule -> I.pattern
    val get_lhs_cc :
      Odes.Make.enriched_rule ->
      (Odes.Make.connected_component_id * I.connected_component) list
    val get_divide_rate_by : Odes.Make.enriched_rule -> int
    val compute_symmetries_from_model :
      Remanent_parameters_sig.parameters ->
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      Public_data.contact_map ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val set_to_backward_symmetries_from_model :
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val set_to_forward_symmetries_from_model :
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network
    val print_symmetries :
      Remanent_parameters_sig.parameters ->
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      unit
    val get_data :
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      int * int * int
    val init_bwd_bisim_info :
      I.compil ->
      (Odes.Make.ode_var_id, Ode_loggers_sig.ode_var_id) Odes.Make.network ->
      LKappa_group_action.bwd_bisim_info option
  end