sig
  val print_problem :
    Stdlib.out_channel -> InstructionSchedulerTypes.problem -> unit
  val get_nr_instructions : InstructionSchedulerTypes.problem -> int
  val get_nr_resources : InstructionSchedulerTypes.problem -> int
  val maximum_slot_used : int array -> int
  val check_schedule :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution -> unit
  val list_scheduler :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val regpres_scheduler :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val reg_pres_scheduler_old :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val greedy_scheduler :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val recompute_makespan :
    InstructionSchedulerTypes.problem -> int array -> int option
  val schedule_reversed :
    InstructionSchedulerTypes.scheduler ->
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val reverse_list_scheduler :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val check_problem : InstructionSchedulerTypes.problem -> unit
  val validated_scheduler :
    InstructionSchedulerTypes.scheduler ->
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val get_max_latency : int array -> int
  val maximum_critical_path : InstructionSchedulerTypes.problem -> int
  val cascaded_scheduler :
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val show_date_ranges : InstructionSchedulerTypes.problem -> unit
  type pseudo_boolean_problem_type = SATISFIABILITY | OPTIMIZATION
  type pseudo_boolean_mapper
  val pseudo_boolean_print_problem :
    Stdlib.out_channel ->
    InstructionSchedulerTypes.problem ->
    InstructionScheduler.pseudo_boolean_problem_type ->
    InstructionScheduler.pseudo_boolean_mapper
  val pseudo_boolean_read_solution :
    InstructionScheduler.pseudo_boolean_mapper ->
    Stdlib.in_channel -> int array
  val pseudo_boolean_scheduler :
    InstructionScheduler.pseudo_boolean_problem_type ->
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val smt_print_problem :
    Stdlib.out_channel -> InstructionSchedulerTypes.problem -> unit
  val ilp_print_problem :
    Stdlib.out_channel ->
    InstructionSchedulerTypes.problem ->
    InstructionScheduler.pseudo_boolean_problem_type ->
    InstructionScheduler.pseudo_boolean_mapper
  val ilp_scheduler :
    InstructionScheduler.pseudo_boolean_problem_type ->
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
  val mris_scheduler :
    InstructionSchedulerTypes.problem ->
    bool -> bool -> InstructionSchedulerTypes.solution option
  val scheduler_by_name :
    string ->
    InstructionSchedulerTypes.problem ->
    InstructionSchedulerTypes.solution option
end