sig
  type t
  val invariant : t Core_kernel.Invariant_intf.inv
  val create : unit -> Jobs.t
  val length : Jobs.t -> int
  val is_empty : Jobs.t -> bool
  val add : Jobs.t -> Priority.t -> Job.t -> unit
  val clear : Jobs.t -> unit
  val start_cycle : Jobs.t -> max_num_jobs_per_priority:int -> unit
  val force_current_cycle_to_end : Jobs.t -> unit
  val run_all : Jobs.t -> (Job.t -> unit) -> (unit, exn) Core.Std.Result.t
  val sexp_of_t : Jobs.t -> Sexplib.Sexp.t
end