sig
  module S : Generic_branch_and_cut_solver.Solver
  type error_log = Exception.method_handler
  val error_init : Utilities.error_log
  type parameter = S.PH.B.PB.CI.Po.K.H.parameter
  type kappa_handler = S.PH.B.PB.CI.Po.K.H.handler
  type profiling_info = StoryProfiling.StoryStats.log_info
  type shall_we = Utilities.parameter -> bool
  type 'a with_handlers =
      Utilities.parameter ->
      ?shall_we_compute:Utilities.shall_we ->
      ?shall_we_compute_profiling_information:Utilities.shall_we ->
      ?print_if_zero:Utilities.shall_we ->
      Utilities.kappa_handler ->
      Utilities.profiling_info -> Utilities.error_log -> 'a
  type 'a zeroary =
      (Utilities.error_log * Utilities.profiling_info * 'a)
      Utilities.with_handlers
  type ('a, 'b) unary =
      ('-> Utilities.error_log * Utilities.profiling_info * 'b)
      Utilities.with_handlers
  type ('a, 'b, 'c) binary =
      ('-> '-> Utilities.error_log * Utilities.profiling_info * 'c)
      Utilities.with_handlers
  type ('a, 'b, 'c, 'd) ternary =
      ('-> '-> '-> Utilities.error_log * Utilities.profiling_info * 'd)
      Utilities.with_handlers
  type ('a, 'b, 'c, 'd, 'e) quaternary =
      ('->
       '-> '-> '-> Utilities.error_log * Utilities.profiling_info * 'e)
      Utilities.with_handlers
  type ('a, 'b, 'c, 'd, 'e, 'f) quinternary =
      ('->
       '->
       '-> '-> '-> Utilities.error_log * Utilities.profiling_info * 'f)
      Utilities.with_handlers
  type ('a, 'b, 'c, 'd, 'e, 'f, 'g) sexternary =
      ('->
       '->
       '->
       '-> '-> '-> Utilities.error_log * Utilities.profiling_info * 'g)
      Utilities.with_handlers
  val fold_left_with_progress_bar :
    ?event:StoryProfiling.step_kind ->
    (('a, 'b, 'a) Utilities.binary, 'a, 'b list, 'a) Utilities.ternary
  val pop_json : Utilities.parameter -> Yojson.Basic.json option
  val profiling_state_to_json : Utilities.parameter -> Yojson.Basic.json
  val error_list_to_json : Utilities.parameter -> Yojson.Basic.json
  val computation_steps_to_json : Utilities.parameter -> Yojson.Basic.json
  type on_the_fly_cut_state
  val on_the_fly_cut_init : Utilities.on_the_fly_cut_state
  val on_the_fly_cut_step :
    Utilities.on_the_fly_cut_state ->
    Trace.step -> Utilities.on_the_fly_cut_state
  val on_the_fly_cut_finalize :
    Utilities.on_the_fly_cut_state -> Trace.step list
  val cut_rev_trace : Trace.step list -> Trace.step list
  type trace
  type trace_runtime_info = Utilities.profiling_info Trace.Simulation_info.t
  val size_of_pretrace : Utilities.trace -> int
  val last_eid_in_pretrace : Utilities.trace -> int
  val print_trace :
    Utilities.parameter -> Utilities.kappa_handler -> Utilities.trace -> unit
  val has_obs : Utilities.trace -> bool
  val trace_of_pretrace : Trace.t -> Utilities.trace
  val get_pretrace_of_trace : Utilities.trace -> Trace.t
  val get_simulation_time_of_event : Trace.step -> float option
  val get_id_of_event : Trace.step -> int option
  val remove_events_after_last_obs :
    (Utilities.trace, Utilities.trace) Utilities.unary
  val split_init : (Utilities.trace, Utilities.trace) Utilities.unary
  val fill_siphon : (Utilities.trace, Utilities.trace) Utilities.unary
  val cut : (Utilities.trace, Utilities.trace) Utilities.unary
  val remove_pseudo_inverse_events :
    (Utilities.trace, Utilities.trace) Utilities.unary
  val remove_obs_before :
    (Utilities.trace_runtime_info list option, Utilities.trace,
     Utilities.trace)
    Utilities.binary
  val make_unambiguous : (Utilities.trace, Utilities.trace) Utilities.unary
  val weakly_compress :
    ?heuristic:Priority.priorities ->
    (Utilities.trace, Utilities.trace list) Utilities.unary
  val strongly_compress :
    ?heuristic:Priority.priorities ->
    (Utilities.trace, Utilities.trace list) Utilities.unary
  val fold_over_the_causal_past_of_observables_with_a_progress_bar :
    (Utilities.shall_we, Utilities.shall_we, int,
     (Utilities.trace, Utilities.trace_runtime_info list, 'a,
      ('a, 'b) Stop.stop)
     Utilities.ternary, Utilities.trace, 'a, ('a, 'b * int) Stop.stop)
    Utilities.sexternary
  type black_list
  val create_black_list : int -> Utilities.black_list
  val black_list :
    (Utilities.trace, Utilities.black_list, Utilities.black_list)
    Utilities.binary
  val remove_blacklisted_event :
    (Utilities.black_list, Utilities.trace, Utilities.trace) Utilities.binary
  type story_table
  val create_story_table : Utilities.story_table Utilities.zeroary
  val count_stories : Utilities.story_table -> int
  val store_trace :
    (Utilities.trace, Utilities.trace_runtime_info list,
     Utilities.story_table, Utilities.story_table)
    Utilities.ternary
  val fold_story_table_with_progress_bar :
    (string,
     (Utilities.trace, Utilities.trace_runtime_info list, 'a, 'a)
     Utilities.ternary, Utilities.story_table, 'a, 'a)
    Utilities.quaternary
  val fold_story_table_without_progress_bar :
    (string,
     (Utilities.trace, Utilities.trace_runtime_info list, 'a, 'a)
     Utilities.ternary, Utilities.story_table, 'a, 'a)
    Utilities.quaternary
  val flatten_story_table :
    (Utilities.story_table, Utilities.story_table) Utilities.unary
  val export_story_table :
    (Utilities.story_table,
     (Trace.t * Causal.grid * Utilities.trace_runtime_info list) list)
    Utilities.unary
  val compress :
    ?heuristic:Priority.priorities ->
    (Utilities.trace, Utilities.trace list) Utilities.unary
  val copy_log_info :
    StoryProfiling.StoryStats.log_info -> StoryProfiling.StoryStats.log_info
  type cflow_grid = Causal.grid
  type enriched_cflow_grid = Causal.enriched_grid
  val convert_trace_into_grid :
    Utilities.trace -> Utilities.kappa_handler -> Utilities.cflow_grid
  val enrich_grid_with_transitive_past_of_observables_with_a_progress_bar :
    (Utilities.cflow_grid, Utilities.enriched_cflow_grid) Utilities.unary
  val enrich_grid_with_transitive_past_of_observables_without_a_progress_bar :
    (Utilities.cflow_grid, Utilities.enriched_cflow_grid) Utilities.unary
  val enrich_grid_with_transitive_past_of_each_node_without_a_progress_bar :
    (Utilities.cflow_grid, Utilities.enriched_cflow_grid) Utilities.unary
  type canonical_form
  val compare_canonical_form :
    Utilities.canonical_form -> Utilities.canonical_form -> int
  val compute_canonical_form :
    (Utilities.trace, Utilities.canonical_form) Utilities.unary
  type musical_grid
  type observable_hit
  val get_runtime_info_from_observable_hit :
    Utilities.observable_hit -> unit Trace.Simulation_info.t option
  val convert_trace_into_musical_notation :
    (Utilities.trace, Utilities.musical_grid) Utilities.unary
  val extract_observable_hits_from_musical_notation :
    (Utilities.musical_grid, Utilities.observable_hit list) Utilities.unary
  val extract_observable_hit_from_musical_notation :
    (string, Utilities.musical_grid, Utilities.observable_hit)
    Utilities.binary
  val causal_prefix_of_an_observable_hit :
    (string, Utilities.musical_grid, Utilities.enriched_cflow_grid,
     Utilities.observable_hit, Utilities.trace)
    Utilities.quaternary
  val export_musical_grid_to_xls :
    (string, int, int, Utilities.musical_grid, unit) Utilities.quaternary
  val print_musical_grid : (Utilities.musical_grid, unit) Utilities.unary
  val get_counter : Utilities.story_table -> int
end