sig
  val iter :
    Raw_scheduler.t ->
    mutex:((Raw_scheduler.t, Core.Std.Nano_mutex.t) Fieldslib.Field.t ->
           Raw_scheduler.t -> Core.Std.Nano_mutex.t -> 'a) ->
    is_running:((Raw_scheduler.t, bool) Fieldslib.Field.t ->
                Raw_scheduler.t -> bool -> 'b) ->
    fds_whose_watching_has_changed:((Raw_scheduler.t,
                                     Raw_scheduler.Fd.t list)
                                    Fieldslib.Field.t ->
                                    Raw_scheduler.t ->
                                    Raw_scheduler.Fd.t list -> 'c) ->
    file_descr_watcher:((Raw_scheduler.t, File_descr_watcher.t)
                        Fieldslib.Field.t ->
                        Raw_scheduler.t -> File_descr_watcher.t -> 'd) ->
    fd_by_descr:((Raw_scheduler.t, Fd_by_descr.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Fd_by_descr.t -> 'e) ->
    scheduler_thread_id:((Raw_scheduler.t, int) Fieldslib.Field.t ->
                         Raw_scheduler.t -> int -> 'f) ->
    interruptor:((Raw_scheduler.t, Interruptor.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Interruptor.t -> 'g) ->
    signal_manager:((Raw_scheduler.t, Raw_signal_manager.t) Fieldslib.Field.t ->
                    Raw_scheduler.t -> Raw_signal_manager.t -> 'h) ->
    finalizer_jobs:((Raw_scheduler.t,
                     Raw_scheduler.finalizer_job Core.Std.Thread_safe_queue.t
                     Core.Std.sexp_opaque)
                    Fieldslib.Field.t ->
                    Raw_scheduler.t ->
                    Raw_scheduler.finalizer_job Core.Std.Thread_safe_queue.t
                    Core.Std.sexp_opaque -> 'i) ->
    thread_pool:((Raw_scheduler.t, Import.Thread_pool.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Import.Thread_pool.t -> 'j) ->
    core_scheduler:((Raw_scheduler.t, Raw_scheduler.Core_scheduler.t)
                    Fieldslib.Field.t ->
                    Raw_scheduler.t -> Raw_scheduler.Core_scheduler.t -> 'k) ->
    'k
  val fold :
    Raw_scheduler.t ->
    init:'->
    mutex:('->
           (Raw_scheduler.t, Core.Std.Nano_mutex.t) Fieldslib.Field.t ->
           Raw_scheduler.t -> Core.Std.Nano_mutex.t -> 'b) ->
    is_running:('->
                (Raw_scheduler.t, bool) Fieldslib.Field.t ->
                Raw_scheduler.t -> bool -> 'c) ->
    fds_whose_watching_has_changed:('->
                                    (Raw_scheduler.t,
                                     Raw_scheduler.Fd.t list)
                                    Fieldslib.Field.t ->
                                    Raw_scheduler.t ->
                                    Raw_scheduler.Fd.t list -> 'd) ->
    file_descr_watcher:('->
                        (Raw_scheduler.t, File_descr_watcher.t)
                        Fieldslib.Field.t ->
                        Raw_scheduler.t -> File_descr_watcher.t -> 'e) ->
    fd_by_descr:('->
                 (Raw_scheduler.t, Fd_by_descr.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Fd_by_descr.t -> 'f) ->
    scheduler_thread_id:('->
                         (Raw_scheduler.t, int) Fieldslib.Field.t ->
                         Raw_scheduler.t -> int -> 'g) ->
    interruptor:('->
                 (Raw_scheduler.t, Interruptor.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Interruptor.t -> 'h) ->
    signal_manager:('->
                    (Raw_scheduler.t, Raw_signal_manager.t) Fieldslib.Field.t ->
                    Raw_scheduler.t -> Raw_signal_manager.t -> 'i) ->
    finalizer_jobs:('->
                    (Raw_scheduler.t,
                     Raw_scheduler.finalizer_job Core.Std.Thread_safe_queue.t
                     Core.Std.sexp_opaque)
                    Fieldslib.Field.t ->
                    Raw_scheduler.t ->
                    Raw_scheduler.finalizer_job Core.Std.Thread_safe_queue.t
                    Core.Std.sexp_opaque -> 'j) ->
    thread_pool:('->
                 (Raw_scheduler.t, Import.Thread_pool.t) Fieldslib.Field.t ->
                 Raw_scheduler.t -> Import.Thread_pool.t -> 'k) ->
    core_scheduler:('->
                    (Raw_scheduler.t, Raw_scheduler.Core_scheduler.t)
                    Fieldslib.Field.t ->
                    Raw_scheduler.t -> Raw_scheduler.Core_scheduler.t -> 'l) ->
    'l
end