sig
  type 'res t
  val make :
    ?prio:int ->
    ?slice:float ->
    (deadline:float -> unit -> 'a * Scheduling.shortcut) ->
    'Scheduling.Task.t
  val of_fut :
    ?prio:int ->
    ?slice:float ->
    (deadline:float -> unit -> ('a * Scheduling.shortcut) Scheduling.Fut.t) ->
    'Scheduling.Task.t
  val map : f:('-> 'b) -> 'Scheduling.Task.t -> 'Scheduling.Task.t
end