sig
  val names : string list
  val tx_compressed : (Procfs.Net.Dev.t, bool) Fieldslib.Field.t
  val tx_carrier : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_colls : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_fifo : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_drop : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_errs : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_packets : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val tx_bytes : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_multicast : (Procfs.Net.Dev.t, bool) Fieldslib.Field.t
  val rx_compressed : (Procfs.Net.Dev.t, bool) Fieldslib.Field.t
  val rx_frame : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_fifo : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_drop : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_errs : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_packets : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val rx_bytes : (Procfs.Net.Dev.t, int) Fieldslib.Field.t
  val iface : (Procfs.Net.Dev.t, string) Fieldslib.Field.t
  val fold :
    init:'acc__ ->
    iface:('acc__ -> (Procfs.Net.Dev.t, string) Fieldslib.Field.t -> 'acc__) ->
    rx_bytes:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_packets:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_errs:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_drop:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_fifo:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_frame:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    rx_compressed:('acc__ ->
                   (Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'acc__) ->
    rx_multicast:('acc__ ->
                  (Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'acc__) ->
    tx_bytes:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_packets:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_errs:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_drop:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_fifo:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_colls:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_carrier:('acc__ -> (Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'acc__) ->
    tx_compressed:('acc__ ->
                   (Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'acc__) ->
    'acc__
  val make_creator :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t ->
           'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> bool) * 'compile_acc__) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> bool) * 'compile_acc__) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> bool) * 'compile_acc__) ->
    'compile_acc__ -> ('input__ -> Procfs.Net.Dev.t) * 'compile_acc__
  val create :
    iface:string ->
    rx_bytes:int ->
    rx_packets:int ->
    rx_errs:int ->
    rx_drop:int ->
    rx_fifo:int ->
    rx_frame:int ->
    rx_compressed:bool ->
    rx_multicast:bool ->
    tx_bytes:int ->
    tx_packets:int ->
    tx_errs:int ->
    tx_drop:int ->
    tx_fifo:int ->
    tx_colls:int -> tx_carrier:int -> tx_compressed:bool -> Procfs.Net.Dev.t
  val map :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t -> string) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> int) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    Procfs.Net.Dev.t
  val iter :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t -> unit) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> unit) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> unit) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> unit) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> unit) ->
    unit
  val for_all :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t -> bool) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    bool
  val exists :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t -> bool) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> bool) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> bool) ->
    bool
  val to_list :
    iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t -> 'elem__) ->
    rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'elem__) ->
    rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'elem__) ->
    tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t -> 'elem__) ->
    tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t -> 'elem__) ->
    'elem__ list
  val map_poly :
    ([< `Read | `Set_and_create ], Procfs.Net.Dev.t, 'x0)
    Fieldslib.Field.user -> 'x0 list
  module Direct :
    sig
      val iter :
        Procfs.Net.Dev.t ->
        iface:((Procfs.Net.Dev.t, string) Fieldslib.Field.t ->
               Procfs.Net.Dev.t -> string -> unit) ->
        rx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> unit) ->
        rx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> unit) ->
        rx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        rx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        rx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        rx_frame:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> unit) ->
        rx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                       Procfs.Net.Dev.t -> bool -> unit) ->
        rx_multicast:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                      Procfs.Net.Dev.t -> bool -> unit) ->
        tx_bytes:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> unit) ->
        tx_packets:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> unit) ->
        tx_errs:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        tx_drop:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        tx_fifo:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> unit) ->
        tx_colls:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> unit) ->
        tx_carrier:((Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> unit) ->
        tx_compressed:((Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                       Procfs.Net.Dev.t -> bool -> unit) ->
        unit
      val fold :
        Procfs.Net.Dev.t ->
        init:'acc__ ->
        iface:('acc__ ->
               (Procfs.Net.Dev.t, string) Fieldslib.Field.t ->
               Procfs.Net.Dev.t -> string -> 'acc__) ->
        rx_bytes:('acc__ ->
                  (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_packets:('acc__ ->
                    (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_errs:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_drop:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_fifo:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_frame:('acc__ ->
                  (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> 'acc__) ->
        rx_compressed:('acc__ ->
                       (Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                       Procfs.Net.Dev.t -> bool -> 'acc__) ->
        rx_multicast:('acc__ ->
                      (Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                      Procfs.Net.Dev.t -> bool -> 'acc__) ->
        tx_bytes:('acc__ ->
                  (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_packets:('acc__ ->
                    (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_errs:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_drop:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_fifo:('acc__ ->
                 (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                 Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_colls:('acc__ ->
                  (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                  Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_carrier:('acc__ ->
                    (Procfs.Net.Dev.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Dev.t -> int -> 'acc__) ->
        tx_compressed:('acc__ ->
                       (Procfs.Net.Dev.t, bool) Fieldslib.Field.t ->
                       Procfs.Net.Dev.t -> bool -> 'acc__) ->
        'acc__
    end
end