sig
  type 'a t
  val return : '-> 'Scheduling.Fut.t
  val map : ('-> 'b) -> 'Scheduling.Fut.t -> 'Scheduling.Fut.t
  type 'a final_state = Stopped | Done of '| Fail of exn
  type tasks_bag
  type 'a on_res_callback =
      Scheduling.Fut.tasks_bag -> 'Scheduling.Fut.final_state -> unit
  val make :
    ?on_res:'Scheduling.Fut.on_res_callback list ->
    (unit -> 'a) -> 'Scheduling.Fut.t
  val stop : 'Scheduling.Fut.t -> unit
  val is_done : 'Scheduling.Fut.t -> bool
  val on_res :
    'Scheduling.Fut.t -> f:'Scheduling.Fut.on_res_callback -> unit
  val get : 'Scheduling.Fut.t -> 'Scheduling.Fut.final_state
end