sig
  val names : string list
  val fd_stat :
    (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat) Fieldslib.Field.t
  val fd : (Procfs.Process.Fd.t, int) Fieldslib.Field.t
  val fold :
    init:'acc__ ->
    fd:('acc__ -> (Procfs.Process.Fd.t, int) Fieldslib.Field.t -> 'acc__) ->
    fd_stat:('acc__ ->
             (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> 'acc__) ->
    'acc__
  val make_creator :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t ->
             'compile_acc__ ->
             ('input__ -> Procfs.Process.Fd.fd_stat) * 'compile_acc__) ->
    'compile_acc__ -> ('input__ -> Procfs.Process.Fd.t) * 'compile_acc__
  val create :
    fd:int -> fd_stat:Procfs.Process.Fd.fd_stat -> Procfs.Process.Fd.t
  val map :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> int) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> Procfs.Process.Fd.fd_stat) ->
    Procfs.Process.Fd.t
  val iter :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> unit) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> unit) ->
    unit
  val for_all :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> bool) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> bool) ->
    bool
  val exists :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> bool) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> bool) ->
    bool
  val to_list :
    fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> 'elem__) ->
    fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
             Fieldslib.Field.t -> 'elem__) ->
    'elem__ list
  val map_poly :
    ([< `Read | `Set_and_create ], Procfs.Process.Fd.t, 'x0)
    Fieldslib.Field.user -> 'x0 list
  module Direct :
    sig
      val iter :
        Procfs.Process.Fd.t ->
        fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
            Procfs.Process.Fd.t -> int -> unit) ->
        fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                 Fieldslib.Field.t ->
                 Procfs.Process.Fd.t -> Procfs.Process.Fd.fd_stat -> unit) ->
        unit
      val fold :
        Procfs.Process.Fd.t ->
        init:'acc__ ->
        fd:('acc__ ->
            (Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
            Procfs.Process.Fd.t -> int -> 'acc__) ->
        fd_stat:('acc__ ->
                 (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                 Fieldslib.Field.t ->
                 Procfs.Process.Fd.t -> Procfs.Process.Fd.fd_stat -> 'acc__) ->
        'acc__
    end
end