sig
  module Dev :
    sig
      type t = {
        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;
      }
      val tx_compressed : Procfs.Net.Dev.t -> bool
      val tx_carrier : Procfs.Net.Dev.t -> int
      val tx_colls : Procfs.Net.Dev.t -> int
      val tx_fifo : Procfs.Net.Dev.t -> int
      val tx_drop : Procfs.Net.Dev.t -> int
      val tx_errs : Procfs.Net.Dev.t -> int
      val tx_packets : Procfs.Net.Dev.t -> int
      val tx_bytes : Procfs.Net.Dev.t -> int
      val rx_multicast : Procfs.Net.Dev.t -> bool
      val rx_compressed : Procfs.Net.Dev.t -> bool
      val rx_frame : Procfs.Net.Dev.t -> int
      val rx_fifo : Procfs.Net.Dev.t -> int
      val rx_drop : Procfs.Net.Dev.t -> int
      val rx_errs : Procfs.Net.Dev.t -> int
      val rx_packets : Procfs.Net.Dev.t -> int
      val rx_bytes : Procfs.Net.Dev.t -> int
      val iface : Procfs.Net.Dev.t -> string
      module Fields :
        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
      val interfaces : unit -> string list
      val of_string : string -> Procfs.Net.Dev.t option
    end
  module Route :
    sig
      type t = {
        iface : string;
        destination : Core.Std.Unix.Inet_addr.t;
        gateway : Core.Std.Unix.Inet_addr.t;
        flags : int;
        refcnt : int;
        use : int;
        metric : int;
        mask : Core.Std.Unix.Inet_addr.t;
        mtu : int;
        window : int;
        irtt : int;
      }
      val irtt : Procfs.Net.Route.t -> int
      val window : Procfs.Net.Route.t -> int
      val mtu : Procfs.Net.Route.t -> int
      val mask : Procfs.Net.Route.t -> Core.Std.Unix.Inet_addr.t
      val metric : Procfs.Net.Route.t -> int
      val use : Procfs.Net.Route.t -> int
      val refcnt : Procfs.Net.Route.t -> int
      val flags : Procfs.Net.Route.t -> int
      val gateway : Procfs.Net.Route.t -> Core.Std.Unix.Inet_addr.t
      val destination : Procfs.Net.Route.t -> Core.Std.Unix.Inet_addr.t
      val iface : Procfs.Net.Route.t -> string
      module Fields :
        sig
          val names : string list
          val irtt : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val window : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val mtu : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val mask :
            (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
          val metric : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val use : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val refcnt : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val flags : (Procfs.Net.Route.t, int) Fieldslib.Field.t
          val gateway :
            (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
          val destination :
            (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
          val iface : (Procfs.Net.Route.t, string) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            iface:('acc__ ->
                   (Procfs.Net.Route.t, string) Fieldslib.Field.t -> 'acc__) ->
            destination:('acc__ ->
                         (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> 'acc__) ->
            gateway:('acc__ ->
                     (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> 'acc__) ->
            flags:('acc__ ->
                   (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            refcnt:('acc__ ->
                    (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            use:('acc__ ->
                 (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            metric:('acc__ ->
                    (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            mask:('acc__ ->
                  (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> 'acc__) ->
            mtu:('acc__ ->
                 (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            window:('acc__ ->
                    (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            irtt:('acc__ ->
                  (Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> Core.Std.Unix.Inet_addr.t) *
                         'compile_acc__) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Core.Std.Unix.Inet_addr.t) * 'compile_acc__) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Core.Std.Unix.Inet_addr.t) * 'compile_acc__) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Net.Route.t) * 'compile_acc__
          val create :
            iface:string ->
            destination:Core.Std.Unix.Inet_addr.t ->
            gateway:Core.Std.Unix.Inet_addr.t ->
            flags:int ->
            refcnt:int ->
            use:int ->
            metric:int ->
            mask:Core.Std.Unix.Inet_addr.t ->
            mtu:int -> window:int -> irtt:int -> Procfs.Net.Route.t
          val map :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t -> string) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> int) ->
            Procfs.Net.Route.t
          val iter :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t -> unit) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> unit) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> unit) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> unit) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> unit) ->
            unit
          val for_all :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t -> bool) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> bool) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> bool) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> bool) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            bool
          val exists :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t -> bool) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> bool) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> bool) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> bool) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> bool) ->
            bool
          val to_list :
            iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t -> 'elem__) ->
            destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t -> 'elem__) ->
            gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                     Fieldslib.Field.t -> 'elem__) ->
            flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            use:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                  Fieldslib.Field.t -> 'elem__) ->
            mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            window:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], Procfs.Net.Route.t, 'x0)
            Fieldslib.Field.user -> 'x0 list
          module Direct :
            sig
              val iter :
                Procfs.Net.Route.t ->
                iface:((Procfs.Net.Route.t, string) Fieldslib.Field.t ->
                       Procfs.Net.Route.t -> string -> unit) ->
                destination:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                             Fieldslib.Field.t ->
                             Procfs.Net.Route.t ->
                             Core.Std.Unix.Inet_addr.t -> unit) ->
                gateway:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t ->
                         Procfs.Net.Route.t ->
                         Core.Std.Unix.Inet_addr.t -> unit) ->
                flags:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                       Procfs.Net.Route.t -> int -> unit) ->
                refcnt:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> unit) ->
                use:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Route.t -> int -> unit) ->
                metric:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> unit) ->
                mask:((Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                      Fieldslib.Field.t ->
                      Procfs.Net.Route.t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                mtu:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Route.t -> int -> unit) ->
                window:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> unit) ->
                irtt:((Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                      Procfs.Net.Route.t -> int -> unit) ->
                unit
              val fold :
                Procfs.Net.Route.t ->
                init:'acc__ ->
                iface:('acc__ ->
                       (Procfs.Net.Route.t, string) Fieldslib.Field.t ->
                       Procfs.Net.Route.t -> string -> 'acc__) ->
                destination:('acc__ ->
                             (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                             Fieldslib.Field.t ->
                             Procfs.Net.Route.t ->
                             Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                gateway:('acc__ ->
                         (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                         Fieldslib.Field.t ->
                         Procfs.Net.Route.t ->
                         Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                flags:('acc__ ->
                       (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                       Procfs.Net.Route.t -> int -> 'acc__) ->
                refcnt:('acc__ ->
                        (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> 'acc__) ->
                use:('acc__ ->
                     (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Route.t -> int -> 'acc__) ->
                metric:('acc__ ->
                        (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> 'acc__) ->
                mask:('acc__ ->
                      (Procfs.Net.Route.t, Core.Std.Unix.Inet_addr.t)
                      Fieldslib.Field.t ->
                      Procfs.Net.Route.t ->
                      Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                mtu:('acc__ ->
                     (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Route.t -> int -> 'acc__) ->
                window:('acc__ ->
                        (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                        Procfs.Net.Route.t -> int -> 'acc__) ->
                irtt:('acc__ ->
                      (Procfs.Net.Route.t, int) Fieldslib.Field.t ->
                      Procfs.Net.Route.t -> int -> 'acc__) ->
                'acc__
            end
        end
      val default : unit -> Core.Std.Unix.Inet_addr.t
    end
  module Tcp_state :
    sig
      type t =
          TCP_ESTABLISHED
        | TCP_SYN_SENT
        | TCP_SYN_RECV
        | TCP_FIN_WAIT1
        | TCP_FIN_WAIT2
        | TCP_TIME_WAIT
        | TCP_CLOSE
        | TCP_CLOSE_WAIT
        | TCP_LAST_ACK
        | TCP_LISTEN
        | TCP_CLOSING
        | TCP_MAX_STATES
      val to_int : Procfs.Net.Tcp_state.t -> int
      val of_int : int -> Procfs.Net.Tcp_state.t
    end
  module Tcp :
    sig
      type t = {
        sl : int;
        local_address : Core.Std.Unix.Inet_addr.t;
        local_port : Unix.Inet_port.t;
        remote_address : Core.Std.Unix.Inet_addr.t;
        remote_port : Unix.Inet_port.t option;
        state : Procfs.Net.Tcp_state.t;
        tx_queue : int;
        rx_queue : int;
        tr : int;
        tm_when : int;
        retrnsmt : int;
        uid : int;
        timeout : int;
        inode : Procfs.Process.Inode.t;
        rest : string;
      }
      val rest : Procfs.Net.Tcp.t -> string
      val inode : Procfs.Net.Tcp.t -> Procfs.Process.Inode.t
      val timeout : Procfs.Net.Tcp.t -> int
      val uid : Procfs.Net.Tcp.t -> int
      val retrnsmt : Procfs.Net.Tcp.t -> int
      val tm_when : Procfs.Net.Tcp.t -> int
      val tr : Procfs.Net.Tcp.t -> int
      val rx_queue : Procfs.Net.Tcp.t -> int
      val tx_queue : Procfs.Net.Tcp.t -> int
      val state : Procfs.Net.Tcp.t -> Procfs.Net.Tcp_state.t
      val remote_port : Procfs.Net.Tcp.t -> Unix.Inet_port.t option
      val remote_address : Procfs.Net.Tcp.t -> Core.Std.Unix.Inet_addr.t
      val local_port : Procfs.Net.Tcp.t -> Unix.Inet_port.t
      val local_address : Procfs.Net.Tcp.t -> Core.Std.Unix.Inet_addr.t
      val sl : Procfs.Net.Tcp.t -> int
      module Fields :
        sig
          val names : string list
          val rest : (Procfs.Net.Tcp.t, string) Fieldslib.Field.t
          val inode :
            (Procfs.Net.Tcp.t, Procfs.Process.Inode.t) Fieldslib.Field.t
          val timeout : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val uid : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val retrnsmt : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val tm_when : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val tr : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val rx_queue : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val tx_queue : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val state :
            (Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t) Fieldslib.Field.t
          val remote_port :
            (Procfs.Net.Tcp.t, Unix.Inet_port.t option)
            Fieldslib.Field.t
          val remote_address :
            (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
          val local_port :
            (Procfs.Net.Tcp.t, Unix.Inet_port.t) Fieldslib.Field.t
          val local_address :
            (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
          val sl : (Procfs.Net.Tcp.t, int) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            sl:('acc__ -> (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            local_address:('acc__ ->
                           (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> 'acc__) ->
            local_port:('acc__ ->
                        (Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> 'acc__) ->
            remote_address:('acc__ ->
                            (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> 'acc__) ->
            remote_port:('acc__ ->
                         (Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t -> 'acc__) ->
            state:('acc__ ->
                   (Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> 'acc__) ->
            tx_queue:('acc__ ->
                      (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            rx_queue:('acc__ ->
                      (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            tr:('acc__ -> (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            tm_when:('acc__ ->
                     (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            retrnsmt:('acc__ ->
                      (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            uid:('acc__ ->
                 (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            timeout:('acc__ ->
                     (Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'acc__) ->
            inode:('acc__ ->
                   (Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> 'acc__) ->
            rest:('acc__ ->
                  (Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Core.Std.Unix.Inet_addr.t) *
                           'compile_acc__) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Unix.Inet_port.t) *
                        'compile_acc__) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Core.Std.Unix.Inet_addr.t) *
                            'compile_acc__) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> Unix.Inet_port.t option) *
                         'compile_acc__) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.Net.Tcp_state.t) * 'compile_acc__) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.Process.Inode.t) * 'compile_acc__) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> Procfs.Net.Tcp.t) * 'compile_acc__
          val create :
            sl:int ->
            local_address:Core.Std.Unix.Inet_addr.t ->
            local_port:Unix.Inet_port.t ->
            remote_address:Core.Std.Unix.Inet_addr.t ->
            remote_port:Unix.Inet_port.t option ->
            state:Procfs.Net.Tcp_state.t ->
            tx_queue:int ->
            rx_queue:int ->
            tr:int ->
            tm_when:int ->
            retrnsmt:int ->
            uid:int ->
            timeout:int ->
            inode:Procfs.Process.Inode.t -> rest:string -> Procfs.Net.Tcp.t
          val map :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> Unix.Inet_port.t) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t ->
                         Unix.Inet_port.t option) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> Procfs.Net.Tcp_state.t) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> int) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> Procfs.Process.Inode.t) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> string) ->
            Procfs.Net.Tcp.t
          val iter :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> unit) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> unit) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> unit) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t -> unit) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> unit) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> unit) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> unit) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> unit) ->
            unit
          val for_all :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> bool) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> bool) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> bool) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t -> bool) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> bool) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> bool) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> bool) ->
            bool
          val exists :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> bool) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> bool) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> bool) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t -> bool) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> bool) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> bool) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> bool) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> bool) ->
            bool
          val to_list :
            sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                           Fieldslib.Field.t -> 'elem__) ->
            local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                        Fieldslib.Field.t -> 'elem__) ->
            remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                            Fieldslib.Field.t -> 'elem__) ->
            remote_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t option)
                         Fieldslib.Field.t -> 'elem__) ->
            state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                   Fieldslib.Field.t -> 'elem__) ->
            tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t -> 'elem__) ->
            inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                   Fieldslib.Field.t -> 'elem__) ->
            rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], Procfs.Net.Tcp.t, 'x0)
            Fieldslib.Field.user -> 'x0 list
          module Direct :
            sig
              val iter :
                Procfs.Net.Tcp.t ->
                sl:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Tcp.t -> int -> unit) ->
                local_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t ->
                               Procfs.Net.Tcp.t ->
                               Core.Std.Unix.Inet_addr.t -> unit) ->
                local_port:((Procfs.Net.Tcp.t, Unix.Inet_port.t)
                            Fieldslib.Field.t ->
                            Procfs.Net.Tcp.t ->
                            Unix.Inet_port.t -> unit) ->
                remote_address:((Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t ->
                                Procfs.Net.Tcp.t ->
                                Core.Std.Unix.Inet_addr.t -> unit) ->
                remote_port:((Procfs.Net.Tcp.t,
                              Unix.Inet_port.t option)
                             Fieldslib.Field.t ->
                             Procfs.Net.Tcp.t ->
                             Unix.Inet_port.t option -> unit) ->
                state:((Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                       Fieldslib.Field.t ->
                       Procfs.Net.Tcp.t -> Procfs.Net.Tcp_state.t -> unit) ->
                tx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> unit) ->
                rx_queue:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> unit) ->
                tr:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Tcp.t -> int -> unit) ->
                tm_when:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                         Procfs.Net.Tcp.t -> int -> unit) ->
                retrnsmt:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> unit) ->
                uid:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Tcp.t -> int -> unit) ->
                timeout:((Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                         Procfs.Net.Tcp.t -> int -> unit) ->
                inode:((Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                       Fieldslib.Field.t ->
                       Procfs.Net.Tcp.t -> Procfs.Process.Inode.t -> unit) ->
                rest:((Procfs.Net.Tcp.t, string) Fieldslib.Field.t ->
                      Procfs.Net.Tcp.t -> string -> unit) ->
                unit
              val fold :
                Procfs.Net.Tcp.t ->
                init:'acc__ ->
                sl:('acc__ ->
                    (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Tcp.t -> int -> 'acc__) ->
                local_address:('acc__ ->
                               (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t ->
                               Procfs.Net.Tcp.t ->
                               Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                local_port:('acc__ ->
                            (Procfs.Net.Tcp.t, Unix.Inet_port.t)
                            Fieldslib.Field.t ->
                            Procfs.Net.Tcp.t ->
                            Unix.Inet_port.t -> 'acc__) ->
                remote_address:('acc__ ->
                                (Procfs.Net.Tcp.t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t ->
                                Procfs.Net.Tcp.t ->
                                Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                remote_port:('acc__ ->
                             (Procfs.Net.Tcp.t,
                              Unix.Inet_port.t option)
                             Fieldslib.Field.t ->
                             Procfs.Net.Tcp.t ->
                             Unix.Inet_port.t option -> 'acc__) ->
                state:('acc__ ->
                       (Procfs.Net.Tcp.t, Procfs.Net.Tcp_state.t)
                       Fieldslib.Field.t ->
                       Procfs.Net.Tcp.t -> Procfs.Net.Tcp_state.t -> 'acc__) ->
                tx_queue:('acc__ ->
                          (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> 'acc__) ->
                rx_queue:('acc__ ->
                          (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> 'acc__) ->
                tr:('acc__ ->
                    (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                    Procfs.Net.Tcp.t -> int -> 'acc__) ->
                tm_when:('acc__ ->
                         (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                         Procfs.Net.Tcp.t -> int -> 'acc__) ->
                retrnsmt:('acc__ ->
                          (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                          Procfs.Net.Tcp.t -> int -> 'acc__) ->
                uid:('acc__ ->
                     (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                     Procfs.Net.Tcp.t -> int -> 'acc__) ->
                timeout:('acc__ ->
                         (Procfs.Net.Tcp.t, int) Fieldslib.Field.t ->
                         Procfs.Net.Tcp.t -> int -> 'acc__) ->
                inode:('acc__ ->
                       (Procfs.Net.Tcp.t, Procfs.Process.Inode.t)
                       Fieldslib.Field.t ->
                       Procfs.Net.Tcp.t -> Procfs.Process.Inode.t -> 'acc__) ->
                rest:('acc__ ->
                      (Procfs.Net.Tcp.t, string) Fieldslib.Field.t ->
                      Procfs.Net.Tcp.t -> string -> 'acc__) ->
                'acc__
            end
        end
      val of_line : string -> Procfs.Net.Tcp.t option
      val of_line_exn : string -> Procfs.Net.Tcp.t
      val load_exn : unit -> Procfs.Net.Tcp.t list
    end
end