sig
  val names : string list
  val close_finished : (Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t
  val num_active_syscalls : (Raw_fd.T.t, int) Fieldslib.Field.t
  val watching_has_changed : (Raw_fd.T.t, bool) Fieldslib.Field.t
  val watching :
    (Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t) Fieldslib.Field.t
  val state : (Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t
  val have_set_nonblock : (Raw_fd.T.t, bool) Fieldslib.Field.t
  val supports_nonblock : (Raw_fd.T.t, bool) Fieldslib.Field.t
  val kind : (Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t
  val info : (Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t
  val file_descr : (Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t
  val make_creator :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t ->
                '-> ('-> Raw_fd.File_descr.t) * 'c) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t ->
          '-> ('-> Core.Std.Info.t) * 'd) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t ->
          '-> ('-> Raw_fd.Kind.t) * 'e) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                       '-> ('-> bool) * 'f) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                       '-> ('-> bool) * 'g) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t ->
           '-> ('-> Raw_fd.State.t) * 'h) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t ->
              '-> ('-> Raw_fd.Watching.t Read_write.Mutable.t) * 'i) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                          '-> ('-> bool) * 'j) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t ->
                         '-> ('-> int) * 'k) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                    '-> ('-> unit Import.Ivar.t) * 'l) ->
    '-> ('-> Raw_fd.T.t) * 'l
  val create :
    file_descr:Raw_fd.File_descr.t ->
    info:Core.Std.Info.t ->
    kind:Raw_fd.Kind.t ->
    supports_nonblock:bool ->
    have_set_nonblock:bool ->
    state:Raw_fd.State.t ->
    watching:Raw_fd.Watching.t Read_write.Mutable.t ->
    watching_has_changed:bool ->
    num_active_syscalls:int ->
    close_finished:unit Import.Ivar.t -> Raw_fd.T.t
  val iter :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t -> 'a) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> 'b) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> 'c) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'd) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'e) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> 'f) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> 'g) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'h) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t -> 'i) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t -> 'j) ->
    'j
  val fold :
    init:'->
    file_descr:('->
                (Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t -> 'b) ->
    info:('-> (Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> 'c) ->
    kind:('-> (Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> 'd) ->
    supports_nonblock:('-> (Raw_fd.T.t, bool) Fieldslib.Field.t -> 'e) ->
    have_set_nonblock:('-> (Raw_fd.T.t, bool) Fieldslib.Field.t -> 'f) ->
    state:('-> (Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> 'g) ->
    watching:('->
              (Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> 'h) ->
    watching_has_changed:('-> (Raw_fd.T.t, bool) Fieldslib.Field.t -> 'i) ->
    num_active_syscalls:('-> (Raw_fd.T.t, int) Fieldslib.Field.t -> 'j) ->
    close_finished:('->
                    (Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t -> 'k) ->
    'k
  val map :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t ->
                Raw_fd.File_descr.t) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> Core.Std.Info.t) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> Raw_fd.Kind.t) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> Raw_fd.State.t) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> Raw_fd.Watching.t Read_write.Mutable.t) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t -> int) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                    unit Import.Ivar.t) ->
    Raw_fd.T.t
  val map_poly : (Raw_fd.T.t, 'a) Fieldslib.Field.user -> 'a list
  val for_all :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t -> bool) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> bool) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> bool) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> bool) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> bool) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t -> bool) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                    bool) ->
    bool
  val exists :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t -> bool) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> bool) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> bool) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> bool) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> bool) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t -> bool) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t -> bool) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                    bool) ->
    bool
  val to_list :
    file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t -> 'a) ->
    info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t -> 'a) ->
    kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t -> 'a) ->
    supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'a) ->
    have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'a) ->
    state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t -> 'a) ->
    watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t -> 'a) ->
    watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t -> 'a) ->
    num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t -> 'a) ->
    close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t -> 'a) ->
    'a list
  module Direct :
    sig
      val iter :
        Raw_fd.T.t ->
        file_descr:((Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t ->
                    Raw_fd.T.t -> Raw_fd.File_descr.t -> 'a) ->
        info:((Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t ->
              Raw_fd.T.t -> Core.Std.Info.t -> 'b) ->
        kind:((Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t ->
              Raw_fd.T.t -> Raw_fd.Kind.t -> 'c) ->
        supports_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                           Raw_fd.T.t -> bool -> 'd) ->
        have_set_nonblock:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                           Raw_fd.T.t -> bool -> 'e) ->
        state:((Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t ->
               Raw_fd.T.t -> Raw_fd.State.t -> 'f) ->
        watching:((Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
                  Fieldslib.Field.t ->
                  Raw_fd.T.t -> Raw_fd.Watching.t Read_write.Mutable.t -> 'g) ->
        watching_has_changed:((Raw_fd.T.t, bool) Fieldslib.Field.t ->
                              Raw_fd.T.t -> bool -> 'h) ->
        num_active_syscalls:((Raw_fd.T.t, int) Fieldslib.Field.t ->
                             Raw_fd.T.t -> int -> 'i) ->
        close_finished:((Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                        Raw_fd.T.t -> unit Import.Ivar.t -> 'j) ->
        'j
      val fold :
        Raw_fd.T.t ->
        init:'->
        file_descr:('->
                    (Raw_fd.T.t, Raw_fd.File_descr.t) Fieldslib.Field.t ->
                    Raw_fd.T.t -> Raw_fd.File_descr.t -> 'b) ->
        info:('->
              (Raw_fd.T.t, Core.Std.Info.t) Fieldslib.Field.t ->
              Raw_fd.T.t -> Core.Std.Info.t -> 'c) ->
        kind:('->
              (Raw_fd.T.t, Raw_fd.Kind.t) Fieldslib.Field.t ->
              Raw_fd.T.t -> Raw_fd.Kind.t -> 'd) ->
        supports_nonblock:('->
                           (Raw_fd.T.t, bool) Fieldslib.Field.t ->
                           Raw_fd.T.t -> bool -> 'e) ->
        have_set_nonblock:('->
                           (Raw_fd.T.t, bool) Fieldslib.Field.t ->
                           Raw_fd.T.t -> bool -> 'f) ->
        state:('->
               (Raw_fd.T.t, Raw_fd.State.t) Fieldslib.Field.t ->
               Raw_fd.T.t -> Raw_fd.State.t -> 'g) ->
        watching:('->
                  (Raw_fd.T.t, Raw_fd.Watching.t Read_write.Mutable.t)
                  Fieldslib.Field.t ->
                  Raw_fd.T.t -> Raw_fd.Watching.t Read_write.Mutable.t -> 'h) ->
        watching_has_changed:('->
                              (Raw_fd.T.t, bool) Fieldslib.Field.t ->
                              Raw_fd.T.t -> bool -> 'i) ->
        num_active_syscalls:('->
                             (Raw_fd.T.t, int) Fieldslib.Field.t ->
                             Raw_fd.T.t -> int -> 'j) ->
        close_finished:('->
                        (Raw_fd.T.t, unit Import.Ivar.t) Fieldslib.Field.t ->
                        Raw_fd.T.t -> unit Import.Ivar.t -> 'k) ->
        'k
    end
end