module Fields: sig .. end
val names : string list
val core_scheduler : ([< `Read | `Set_and_create ], Raw_scheduler.t,
        Raw_scheduler.Core_scheduler.t)
       Fieldslib.Field.t_with_perm
val thread_pool : ([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
       Fieldslib.Field.t_with_perm
val signal_manager : ([< `Read | `Set_and_create ], Raw_scheduler.t, Raw_signal_manager.t)
       Fieldslib.Field.t_with_perm
val interruptor : ([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
       Fieldslib.Field.t_with_perm
val scheduler_thread_id : ([< `Read | `Set_and_create ], Raw_scheduler.t, int)
       Fieldslib.Field.t_with_perm
val timerfd : ([< `Read | `Set_and_create ], Raw_scheduler.t,
        Core.Std.Linux_ext.Timerfd.t option)
       Fieldslib.Field.t_with_perm
val fd_by_descr : ([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
       Fieldslib.Field.t_with_perm
val file_descr_watcher : ([< `Read | `Set_and_create ], Raw_scheduler.t,
        Raw_scheduler.File_descr_watcher.t)
       Fieldslib.Field.t_with_perm
val fds_whose_watching_has_changed : ([< `Read | `Set_and_create ], Raw_scheduler.t, Raw_scheduler.Fd.t list)
       Fieldslib.Field.t_with_perm
val have_called_go : ([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
       Fieldslib.Field.t_with_perm
val is_running : ([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
       Fieldslib.Field.t_with_perm
val mutex : ([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
       Fieldslib.Field.t_with_perm
val make_creator : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm ->
              'a -> ('b -> Core.Std.Nano_mutex.t) * 'c) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> 'c -> ('b -> bool) * 'd) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> 'd -> ('b -> bool) * 'e) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm ->
                                       'e -> ('b -> Raw_scheduler.Fd.t list) * 'f) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm ->
                           'f -> ('b -> Raw_scheduler.File_descr_watcher.t) * 'g) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> 'g -> ('b -> Fd_by_descr.t) * 'h) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm ->
                'h -> ('b -> Core.Std.Linux_ext.Timerfd.t option) * 'i) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> 'i -> ('b -> int) * 'j) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> 'j -> ('b -> Interruptor.t) * 'k) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm ->
                       'k -> ('b -> Raw_signal_manager.t) * 'l) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> 'l -> ('b -> Thread_pool.t) * 'm) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm ->
                       'm -> ('b -> Raw_scheduler.Core_scheduler.t) * 'n) ->
       'a -> ('b -> Raw_scheduler.t) * 'n
val create : mutex:Core.Std.Nano_mutex.t ->
       is_running:bool ->
       have_called_go:bool ->
       fds_whose_watching_has_changed:Raw_scheduler.Fd.t list ->
       file_descr_watcher:Raw_scheduler.File_descr_watcher.t ->
       fd_by_descr:Fd_by_descr.t ->
       timerfd:Core.Std.Linux_ext.Timerfd.t option ->
       scheduler_thread_id:int ->
       interruptor:Interruptor.t ->
       signal_manager:Raw_signal_manager.t ->
       thread_pool:Thread_pool.t ->
       core_scheduler:Raw_scheduler.Core_scheduler.t -> Raw_scheduler.t
val map : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> Core.Std.Nano_mutex.t) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm ->
                                       Raw_scheduler.Fd.t list) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm ->
                           Raw_scheduler.File_descr_watcher.t) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> Fd_by_descr.t) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> Core.Std.Linux_ext.Timerfd.t option) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> int) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> Interruptor.t) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> Raw_signal_manager.t) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> Thread_pool.t) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> Raw_scheduler.Core_scheduler.t) ->
       Raw_scheduler.t
val iter : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> 'b) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> 'c) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm -> 'd) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm -> 'e) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> 'f) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> 'g) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> 'h) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> 'i) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> 'j) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> 'k) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> 'l) ->
       'l
val fold : init:'a ->
       mutex:('a ->
              ([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> 'b) ->
       is_running:('b ->
                   ([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> 'c) ->
       have_called_go:('c ->
                       ([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> 'd) ->
       fds_whose_watching_has_changed:('d ->
                                       ([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm -> 'e) ->
       file_descr_watcher:('e ->
                           ([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm -> 'f) ->
       fd_by_descr:('f ->
                    ([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> 'g) ->
       timerfd:('g ->
                ([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> 'h) ->
       scheduler_thread_id:('h ->
                            ([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> 'i) ->
       interruptor:('i ->
                    ([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> 'j) ->
       signal_manager:('j ->
                       ([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> 'k) ->
       thread_pool:('k ->
                    ([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> 'l) ->
       core_scheduler:('l ->
                       ([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> 'm) ->
       'm
val map_poly : ([< `Read | `Set_and_create ], Raw_scheduler.t, 'a) Fieldslib.Field.user ->
       'a list
val for_all : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> bool) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm -> bool) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm -> bool) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> bool) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       bool
val exists : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> bool) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> bool) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> bool) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm -> bool) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm -> bool) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> bool) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> bool) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> bool) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> bool) ->
       bool
val to_list : mutex:(([< `Read | `Set_and_create ], Raw_scheduler.t, Core.Std.Nano_mutex.t)
              Fieldslib.Field.t_with_perm -> 'a) ->
       is_running:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                   Fieldslib.Field.t_with_perm -> 'a) ->
       have_called_go:(([< `Read | `Set_and_create ], Raw_scheduler.t, bool)
                       Fieldslib.Field.t_with_perm -> 'a) ->
       fds_whose_watching_has_changed:(([< `Read | `Set_and_create ],
                                        Raw_scheduler.t, Raw_scheduler.Fd.t list)
                                       Fieldslib.Field.t_with_perm -> 'a) ->
       file_descr_watcher:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                            Raw_scheduler.File_descr_watcher.t)
                           Fieldslib.Field.t_with_perm -> 'a) ->
       fd_by_descr:(([< `Read | `Set_and_create ], Raw_scheduler.t, Fd_by_descr.t)
                    Fieldslib.Field.t_with_perm -> 'a) ->
       timerfd:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                 Core.Std.Linux_ext.Timerfd.t option)
                Fieldslib.Field.t_with_perm -> 'a) ->
       scheduler_thread_id:(([< `Read | `Set_and_create ], Raw_scheduler.t, int)
                            Fieldslib.Field.t_with_perm -> 'a) ->
       interruptor:(([< `Read | `Set_and_create ], Raw_scheduler.t, Interruptor.t)
                    Fieldslib.Field.t_with_perm -> 'a) ->
       signal_manager:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_signal_manager.t)
                       Fieldslib.Field.t_with_perm -> 'a) ->
       thread_pool:(([< `Read | `Set_and_create ], Raw_scheduler.t, Thread_pool.t)
                    Fieldslib.Field.t_with_perm -> 'a) ->
       core_scheduler:(([< `Read | `Set_and_create ], Raw_scheduler.t,
                        Raw_scheduler.Core_scheduler.t)
                       Fieldslib.Field.t_with_perm -> 'a) ->
       'a list
module Direct: sig .. end