sig
  val iter :
    Raw_fd.T.t ->
    file_descr:(([< `Read | `Set_and_create ], Raw_fd.T.t,
                 Raw_fd.File_descr.t)
                Fieldslib.Field.t_with_perm ->
                Raw_fd.T.t -> Raw_fd.File_descr.t -> 'a) ->
    info:(([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Core.Std.Info.t -> 'b) ->
    kind:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
          Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Raw_fd.Kind.t -> 'c) ->
    supports_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_fd.T.t -> bool -> 'd) ->
    have_set_nonblock:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_fd.T.t -> bool -> 'e) ->
    state:(([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
           Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Raw_fd.State.t -> 'f) ->
    watching:(([< `Read | `Set_and_create ], Raw_fd.T.t,
               Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t_with_perm ->
              Raw_fd.T.t -> Raw_fd.Watching.t Read_write.Mutable.t -> 'g) ->
    watching_has_changed:(([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          Raw_fd.T.t -> bool -> 'h) ->
    num_active_syscalls:(([< `Read | `Set_and_create ], Raw_fd.T.t, int)
                         Fieldslib.Field.t_with_perm ->
                         Raw_fd.T.t -> int -> 'i) ->
    close_finished:(([< `Read | `Set_and_create ], Raw_fd.T.t,
                     unit Import.Ivar.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_fd.T.t -> unit Import.Ivar.t -> 'j) ->
    'j
  val fold :
    Raw_fd.T.t ->
    init:'->
    file_descr:('->
                ([< `Read | `Set_and_create ], Raw_fd.T.t,
                 Raw_fd.File_descr.t)
                Fieldslib.Field.t_with_perm ->
                Raw_fd.T.t -> Raw_fd.File_descr.t -> 'b) ->
    info:('->
          ([< `Read | `Set_and_create ], Raw_fd.T.t, Core.Std.Info.t)
          Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Core.Std.Info.t -> 'c) ->
    kind:('->
          ([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.Kind.t)
          Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Raw_fd.Kind.t -> 'd) ->
    supports_nonblock:('->
                       ([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_fd.T.t -> bool -> 'e) ->
    have_set_nonblock:('->
                       ([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                       Fieldslib.Field.t_with_perm ->
                       Raw_fd.T.t -> bool -> 'f) ->
    state:('->
           ([< `Read | `Set_and_create ], Raw_fd.T.t, Raw_fd.State.t)
           Fieldslib.Field.t_with_perm -> Raw_fd.T.t -> Raw_fd.State.t -> 'g) ->
    watching:('->
              ([< `Read | `Set_and_create ], Raw_fd.T.t,
               Raw_fd.Watching.t Read_write.Mutable.t)
              Fieldslib.Field.t_with_perm ->
              Raw_fd.T.t -> Raw_fd.Watching.t Read_write.Mutable.t -> 'h) ->
    watching_has_changed:('->
                          ([< `Read | `Set_and_create ], Raw_fd.T.t, bool)
                          Fieldslib.Field.t_with_perm ->
                          Raw_fd.T.t -> bool -> 'i) ->
    num_active_syscalls:('->
                         ([< `Read | `Set_and_create ], Raw_fd.T.t, int)
                         Fieldslib.Field.t_with_perm ->
                         Raw_fd.T.t -> int -> 'j) ->
    close_finished:('->
                    ([< `Read | `Set_and_create ], Raw_fd.T.t,
                     unit Import.Ivar.t)
                    Fieldslib.Field.t_with_perm ->
                    Raw_fd.T.t -> unit Import.Ivar.t -> 'k) ->
    'k
end