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 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 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 map_poly :
        (Procfs.Net.Route.t, 'x0) Fieldslib.Field.user -> 'x0 list
      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
      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