sig
  val parse_cli :
    (Phases.filename list * Params.t, [ `Init ], [ `Parse_cli ]) Phases.t
  val load_extensions :
    (Extensions.t list, [ `Parse_cli ], [ `LoadExtensions ]) Phases.t
  val setup_gc : (unit, [ `Init ], [ `Init ]) Phases.t
  val setup_signal : (unit, [ `Init ], [ `Init ]) Phases.t
  val process_file :
    Phases.prelude ->
    Phases.filename ->
    (Phases.env_with_result, [ `Parse_prelude ], [ `Saturate ]) Phases.t
  val print :
    Phases.filename ->
    'Env.packed ->
    Saturate.szs_status -> (unit, [ `Saturate ], [ `Print_dot ]) Phases.t
  val check :
    Saturate.szs_status ->
    (Phases.errcode, [ `Print_dot ], [ `Check_proof ]) Phases.t
  val process_files_and_print :
    Params.t ->
    Phases.filename list ->
    (Phases.errcode, [ `LoadExtensions ], [ `Print_stats ]) Phases.t
  val print_stats :
    unit -> (unit, [ `Check_proof ], [ `Print_stats ]) Phases.t
end