functor (Scheduler : Import.Basic_scheduler->
  sig
    type 'a t = ('a, Scheduler.Execution_context.t) Raw_deferred.deferred
    val sexp_of_t :
      ('-> Sexplib.Sexp.t) ->
      'Raw_deferred.Scheduler_dependent.t -> Sexplib.Sexp.t
    type 'a detailed = 'Raw_deferred.Scheduler_dependent.t
    val sexp_of_detailed :
      ('-> Sexplib.Sexp.t) ->
      'Raw_deferred.Scheduler_dependent.detailed -> Sexplib.Sexp.t
    val upon : 'Raw_deferred.Scheduler_dependent.t -> ('-> unit) -> unit
    val upon' :
      'Raw_deferred.Scheduler_dependent.t -> ('-> unit) -> Unregister.t
    val bind :
      'Raw_deferred.Scheduler_dependent.t ->
      ('-> 'Raw_deferred.Scheduler_dependent.t) ->
      'Raw_deferred.Scheduler_dependent.t
    val install_removable_handler :
      'Raw_deferred.Scheduler_dependent.t ->
      ('a, Scheduler.Execution_context.t) Raw_handler.t -> Unregister.t
  end