module Direct: sig .. end
val iter : Raw_scheduler.T.t ->
       check_access:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                      (unit -> unit) option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_scheduler.T.t -> (unit -> unit) option -> 'a) ->
       jobs:(([< `Read | `Set_and_create ], Raw_scheduler.T.t, Jobs.t)
             Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> Jobs.t -> 'b) ->
       main_execution_context:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                Execution_context.t)
                               Fieldslib.Field.t_with_perm ->
                               Raw_scheduler.T.t -> Execution_context.t -> 'c) ->
       current_execution_context:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                   Execution_context.t)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_scheduler.T.t -> Execution_context.t -> 'd) ->
       max_num_jobs_per_priority_per_cycle:(([< `Read | `Set_and_create ],
                                             Raw_scheduler.T.t, int)
                                            Fieldslib.Field.t_with_perm ->
                                            Raw_scheduler.T.t -> int -> 'e) ->
       uncaught_exn:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                      Core.Std.Error.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_scheduler.T.t -> Core.Std.Error.t option -> 'f) ->
       global_kill_index:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                           Kill_index.t)
                          Fieldslib.Field.t_with_perm ->
                          Raw_scheduler.T.t -> Kill_index.t -> 'g) ->
       num_jobs_run:(([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                     Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> int -> 'h) ->
       cycle_count:(([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                    Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> int -> 'i) ->
       cycle_start:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                     Core.Std.Time.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_scheduler.T.t -> Core.Std.Time.t -> 'j) ->
       run_every_cycle_start:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                               (unit -> unit) list)
                              Fieldslib.Field.t_with_perm ->
                              Raw_scheduler.T.t -> (unit -> unit) list -> 'k) ->
       last_cycle_time:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                         Core.Std.Time.Span.t)
                        Fieldslib.Field.t_with_perm ->
                        Raw_scheduler.T.t -> Core.Std.Time.Span.t -> 'l) ->
       last_cycle_num_jobs:(([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                            Fieldslib.Field.t_with_perm ->
                            Raw_scheduler.T.t -> int -> 'm) ->
       events:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                Job.t Core.Std.Timing_wheel.t)
               Fieldslib.Field.t_with_perm ->
               Raw_scheduler.T.t -> Job.t Core.Std.Timing_wheel.t -> 'n) ->
       finalizer_jobs:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                        Job.t Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque)
                       Fieldslib.Field.t_with_perm ->
                       Raw_scheduler.T.t ->
                       Job.t Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque -> 'o) ->
       thread_safe_finalizer_hook:(([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                    unit -> unit)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_scheduler.T.t -> (unit -> unit) -> 'p) ->
       'p
val fold : Raw_scheduler.T.t ->
       init:'a ->
       check_access:('a ->
                     ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                      (unit -> unit) option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_scheduler.T.t -> (unit -> unit) option -> 'b) ->
       jobs:('b ->
             ([< `Read | `Set_and_create ], Raw_scheduler.T.t, Jobs.t)
             Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> Jobs.t -> 'c) ->
       main_execution_context:('c ->
                               ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                Execution_context.t)
                               Fieldslib.Field.t_with_perm ->
                               Raw_scheduler.T.t -> Execution_context.t -> 'd) ->
       current_execution_context:('d ->
                                  ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                   Execution_context.t)
                                  Fieldslib.Field.t_with_perm ->
                                  Raw_scheduler.T.t -> Execution_context.t -> 'e) ->
       max_num_jobs_per_priority_per_cycle:('e ->
                                            ([< `Read | `Set_and_create ],
                                             Raw_scheduler.T.t, int)
                                            Fieldslib.Field.t_with_perm ->
                                            Raw_scheduler.T.t -> int -> 'f) ->
       uncaught_exn:('f ->
                     ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                      Core.Std.Error.t option)
                     Fieldslib.Field.t_with_perm ->
                     Raw_scheduler.T.t -> Core.Std.Error.t option -> 'g) ->
       global_kill_index:('g ->
                          ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                           Kill_index.t)
                          Fieldslib.Field.t_with_perm ->
                          Raw_scheduler.T.t -> Kill_index.t -> 'h) ->
       num_jobs_run:('h ->
                     ([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                     Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> int -> 'i) ->
       cycle_count:('i ->
                    ([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                    Fieldslib.Field.t_with_perm -> Raw_scheduler.T.t -> int -> 'j) ->
       cycle_start:('j ->
                    ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                     Core.Std.Time.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_scheduler.T.t -> Core.Std.Time.t -> 'k) ->
       run_every_cycle_start:('k ->
                              ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                               (unit -> unit) list)
                              Fieldslib.Field.t_with_perm ->
                              Raw_scheduler.T.t -> (unit -> unit) list -> 'l) ->
       last_cycle_time:('l ->
                        ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                         Core.Std.Time.Span.t)
                        Fieldslib.Field.t_with_perm ->
                        Raw_scheduler.T.t -> Core.Std.Time.Span.t -> 'm) ->
       last_cycle_num_jobs:('m ->
                            ([< `Read | `Set_and_create ], Raw_scheduler.T.t, int)
                            Fieldslib.Field.t_with_perm ->
                            Raw_scheduler.T.t -> int -> 'n) ->
       events:('n ->
               ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                Job.t Core.Std.Timing_wheel.t)
               Fieldslib.Field.t_with_perm ->
               Raw_scheduler.T.t -> Job.t Core.Std.Timing_wheel.t -> 'o) ->
       finalizer_jobs:('o ->
                       ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                        Job.t Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque)
                       Fieldslib.Field.t_with_perm ->
                       Raw_scheduler.T.t ->
                       Job.t Core.Std.Thread_safe_queue.t Core.Std.sexp_opaque -> 'p) ->
       thread_safe_finalizer_hook:('p ->
                                   ([< `Read | `Set_and_create ], Raw_scheduler.T.t,
                                    unit -> unit)
                                   Fieldslib.Field.t_with_perm ->
                                   Raw_scheduler.T.t -> (unit -> unit) -> 'q) ->
       'q