sig
  type bigint = Core.Std.Big_int.big_int
  val input_all_with_reused_buffer :
    unit -> (string -> string) Core.Std.Staged.t
  module Process :
    sig
      module Inode :
        sig
          type t = Procfs.Process.Inode.t
          val of_string : string -> t
          val to_string : t -> string
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      module Limits :
        sig
          module Rlimit :
            sig
              type value = [ `limited of bigint | `unlimited ]
              type t =
                Procfs.Process.Limits.Rlimit.t = {
                soft : value;
                hard : value;
              }
              val hard : t -> value
              val soft : t -> value
              module Fields :
                sig
                  val names : string list
                  val hard : (t, value) Fieldslib.Field.t
                  val soft : (t, value) Fieldslib.Field.t
                  val fold :
                    init:'acc__ ->
                    soft:('acc__ -> (t, value) Fieldslib.Field.t -> 'acc__) ->
                    hard:('acc__ -> (t, value) Fieldslib.Field.t -> 'acc__) ->
                    'acc__
                  val make_creator :
                    soft:((t, value) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> value) * 'compile_acc__) ->
                    hard:((t, value) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> value) * 'compile_acc__) ->
                    'compile_acc__ -> ('input__ -> t) * 'compile_acc__
                  val create : soft:value -> hard:value -> t
                  val map :
                    soft:((t, value) Fieldslib.Field.t -> value) ->
                    hard:((t, value) Fieldslib.Field.t -> value) -> t
                  val iter :
                    soft:((t, value) Fieldslib.Field.t -> unit) ->
                    hard:((t, value) Fieldslib.Field.t -> unit) -> unit
                  val for_all :
                    soft:((t, value) Fieldslib.Field.t -> bool) ->
                    hard:((t, value) Fieldslib.Field.t -> bool) -> bool
                  val exists :
                    soft:((t, value) Fieldslib.Field.t -> bool) ->
                    hard:((t, value) Fieldslib.Field.t -> bool) -> bool
                  val to_list :
                    soft:((t, value) Fieldslib.Field.t -> 'elem__) ->
                    hard:((t, value) Fieldslib.Field.t -> 'elem__) ->
                    'elem__ list
                  val map_poly :
                    ([< `Read | `Set_and_create ], t, 'x0)
                    Fieldslib.Field.user -> 'x0 list
                  module Direct :
                    sig
                      val iter :
                        t ->
                        soft:((t, value) Fieldslib.Field.t ->
                              t -> value -> unit) ->
                        hard:((t, value) Fieldslib.Field.t ->
                              t -> value -> unit) ->
                        unit
                      val fold :
                        t ->
                        init:'acc__ ->
                        soft:('acc__ ->
                              (t, value) Fieldslib.Field.t ->
                              t -> value -> 'acc__) ->
                        hard:('acc__ ->
                              (t, value) Fieldslib.Field.t ->
                              t -> value -> 'acc__) ->
                        'acc__
                    end
                end
              val value_of_sexp : Sexplib.Sexp.t -> value
              val __value_of_sexp__ : Sexplib.Sexp.t -> value
              val sexp_of_value : value -> Sexplib.Sexp.t
              val t_of_sexp : Sexplib.Sexp.t -> t
              val sexp_of_t : t -> Sexplib.Sexp.t
            end
          type t =
            Procfs.Process.Limits.t = {
            cpu_time : Rlimit.t;
            file_size : Rlimit.t;
            data_size : Rlimit.t;
            stack_size : Rlimit.t;
            core_file_size : Rlimit.t;
            resident_set : Rlimit.t;
            processes : Rlimit.t;
            open_files : Rlimit.t;
            locked_memory : Rlimit.t;
            address_space : Rlimit.t;
            file_locks : Rlimit.t;
            pending_signals : Rlimit.t;
            msgqueue_size : Rlimit.t;
            nice_priority : Rlimit.t;
            realtime_priority : Rlimit.t;
          }
          val realtime_priority : t -> Rlimit.t
          val nice_priority : t -> Rlimit.t
          val msgqueue_size : t -> Rlimit.t
          val pending_signals : t -> Rlimit.t
          val file_locks : t -> Rlimit.t
          val address_space : t -> Rlimit.t
          val locked_memory : t -> Rlimit.t
          val open_files : t -> Rlimit.t
          val processes : t -> Rlimit.t
          val resident_set : t -> Rlimit.t
          val core_file_size : t -> Rlimit.t
          val stack_size : t -> Rlimit.t
          val data_size : t -> Rlimit.t
          val file_size : t -> Rlimit.t
          val cpu_time : t -> Rlimit.t
          module Fields :
            sig
              val names : string list
              val realtime_priority : (t, Rlimit.t) Fieldslib.Field.t
              val nice_priority : (t, Rlimit.t) Fieldslib.Field.t
              val msgqueue_size : (t, Rlimit.t) Fieldslib.Field.t
              val pending_signals : (t, Rlimit.t) Fieldslib.Field.t
              val file_locks : (t, Rlimit.t) Fieldslib.Field.t
              val address_space : (t, Rlimit.t) Fieldslib.Field.t
              val locked_memory : (t, Rlimit.t) Fieldslib.Field.t
              val open_files : (t, Rlimit.t) Fieldslib.Field.t
              val processes : (t, Rlimit.t) Fieldslib.Field.t
              val resident_set : (t, Rlimit.t) Fieldslib.Field.t
              val core_file_size : (t, Rlimit.t) Fieldslib.Field.t
              val stack_size : (t, Rlimit.t) Fieldslib.Field.t
              val data_size : (t, Rlimit.t) Fieldslib.Field.t
              val file_size : (t, Rlimit.t) Fieldslib.Field.t
              val cpu_time : (t, Rlimit.t) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                cpu_time:('acc__ -> (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                file_size:('acc__ ->
                           (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                data_size:('acc__ ->
                           (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                stack_size:('acc__ ->
                            (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                core_file_size:('acc__ ->
                                (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                resident_set:('acc__ ->
                              (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                processes:('acc__ ->
                           (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                open_files:('acc__ ->
                            (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                locked_memory:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                address_space:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                file_locks:('acc__ ->
                            (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                pending_signals:('acc__ ->
                                 (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                msgqueue_size:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                nice_priority:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                realtime_priority:('acc__ ->
                                   (t, Rlimit.t) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> Rlimit.t) * 'compile_acc__) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Rlimit.t) * 'compile_acc__) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Rlimit.t) * 'compile_acc__) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Rlimit.t) * 'compile_acc__) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t ->
                                'compile_acc__ ->
                                ('input__ -> Rlimit.t) * 'compile_acc__) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t ->
                              'compile_acc__ ->
                              ('input__ -> Rlimit.t) * 'compile_acc__) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Rlimit.t) * 'compile_acc__) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Rlimit.t) * 'compile_acc__) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Rlimit.t) * 'compile_acc__) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Rlimit.t) * 'compile_acc__) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Rlimit.t) * 'compile_acc__) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t ->
                                 'compile_acc__ ->
                                 ('input__ -> Rlimit.t) * 'compile_acc__) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Rlimit.t) * 'compile_acc__) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Rlimit.t) * 'compile_acc__) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t ->
                                   'compile_acc__ ->
                                   ('input__ -> Rlimit.t) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> t) * 'compile_acc__
              val create :
                cpu_time:Rlimit.t ->
                file_size:Rlimit.t ->
                data_size:Rlimit.t ->
                stack_size:Rlimit.t ->
                core_file_size:Rlimit.t ->
                resident_set:Rlimit.t ->
                processes:Rlimit.t ->
                open_files:Rlimit.t ->
                locked_memory:Rlimit.t ->
                address_space:Rlimit.t ->
                file_locks:Rlimit.t ->
                pending_signals:Rlimit.t ->
                msgqueue_size:Rlimit.t ->
                nice_priority:Rlimit.t -> realtime_priority:Rlimit.t -> t
              val map :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t -> Rlimit.t) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t ->
                                   Rlimit.t) ->
                t
              val iter :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t -> unit) ->
                unit
              val for_all :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                bool
              val exists :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t -> bool) ->
                bool
              val to_list :
                cpu_time:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                file_size:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                data_size:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                stack_size:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                core_file_size:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                resident_set:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                processes:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                open_files:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                locked_memory:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                address_space:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                file_locks:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                pending_signals:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                nice_priority:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                realtime_priority:((t, Rlimit.t) Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    cpu_time:((t, Rlimit.t) Fieldslib.Field.t ->
                              t -> Rlimit.t -> unit) ->
                    file_size:((t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> unit) ->
                    data_size:((t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> unit) ->
                    stack_size:((t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> unit) ->
                    core_file_size:((t, Rlimit.t) Fieldslib.Field.t ->
                                    t -> Rlimit.t -> unit) ->
                    resident_set:((t, Rlimit.t) Fieldslib.Field.t ->
                                  t -> Rlimit.t -> unit) ->
                    processes:((t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> unit) ->
                    open_files:((t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> unit) ->
                    locked_memory:((t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> unit) ->
                    address_space:((t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> unit) ->
                    file_locks:((t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> unit) ->
                    pending_signals:((t, Rlimit.t) Fieldslib.Field.t ->
                                     t -> Rlimit.t -> unit) ->
                    msgqueue_size:((t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> unit) ->
                    nice_priority:((t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> unit) ->
                    realtime_priority:((t, Rlimit.t) Fieldslib.Field.t ->
                                       t -> Rlimit.t -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    cpu_time:('acc__ ->
                              (t, Rlimit.t) Fieldslib.Field.t ->
                              t -> Rlimit.t -> 'acc__) ->
                    file_size:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> 'acc__) ->
                    data_size:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> 'acc__) ->
                    stack_size:('acc__ ->
                                (t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> 'acc__) ->
                    core_file_size:('acc__ ->
                                    (t, Rlimit.t) Fieldslib.Field.t ->
                                    t -> Rlimit.t -> 'acc__) ->
                    resident_set:('acc__ ->
                                  (t, Rlimit.t) Fieldslib.Field.t ->
                                  t -> Rlimit.t -> 'acc__) ->
                    processes:('acc__ ->
                               (t, Rlimit.t) Fieldslib.Field.t ->
                               t -> Rlimit.t -> 'acc__) ->
                    open_files:('acc__ ->
                                (t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> 'acc__) ->
                    locked_memory:('acc__ ->
                                   (t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> 'acc__) ->
                    address_space:('acc__ ->
                                   (t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> 'acc__) ->
                    file_locks:('acc__ ->
                                (t, Rlimit.t) Fieldslib.Field.t ->
                                t -> Rlimit.t -> 'acc__) ->
                    pending_signals:('acc__ ->
                                     (t, Rlimit.t) Fieldslib.Field.t ->
                                     t -> Rlimit.t -> 'acc__) ->
                    msgqueue_size:('acc__ ->
                                   (t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> 'acc__) ->
                    nice_priority:('acc__ ->
                                   (t, Rlimit.t) Fieldslib.Field.t ->
                                   t -> Rlimit.t -> 'acc__) ->
                    realtime_priority:('acc__ ->
                                       (t, Rlimit.t) Fieldslib.Field.t ->
                                       t -> Rlimit.t -> 'acc__) ->
                    'acc__
                end
            end
          val of_string : string -> t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      module Stat :
        sig
          type t =
            Procfs.Process.Stat.t = {
            comm : string;
            state : char;
            ppid : Core.Std.Pid.t option;
            pgrp : Core.Std.Pid.t option;
            session : int;
            tty_nr : int;
            tpgid : int;
            flags : bigint;
            minflt : bigint;
            cminflt : bigint;
            majflt : bigint;
            cmajflt : bigint;
            utime : bigint;
            stime : bigint;
            cutime : bigint;
            cstime : bigint;
            priority : bigint;
            nice : bigint;
            unused : bigint;
            itrealvalue : bigint;
            starttime : bigint;
            vsize : bigint;
            rss : bigint;
            rlim : bigint;
            startcode : bigint;
            endcode : bigint;
            startstack : bigint;
            kstkesp : bigint;
            kstkeip : bigint;
            signal : bigint;
            blocked : bigint;
            sigignore : bigint;
            sigcatch : bigint;
            wchan : bigint;
            nswap : bigint;
            cnswap : bigint;
            exit_signal : int;
            processor : int;
            rt_priority : bigint;
            policy : bigint;
          }
          val policy : t -> bigint
          val rt_priority : t -> bigint
          val processor : t -> int
          val exit_signal : t -> int
          val cnswap : t -> bigint
          val nswap : t -> bigint
          val wchan : t -> bigint
          val sigcatch : t -> bigint
          val sigignore : t -> bigint
          val blocked : t -> bigint
          val signal : t -> bigint
          val kstkeip : t -> bigint
          val kstkesp : t -> bigint
          val startstack : t -> bigint
          val endcode : t -> bigint
          val startcode : t -> bigint
          val rlim : t -> bigint
          val rss : t -> bigint
          val vsize : t -> bigint
          val starttime : t -> bigint
          val itrealvalue : t -> bigint
          val unused : t -> bigint
          val nice : t -> bigint
          val priority : t -> bigint
          val cstime : t -> bigint
          val cutime : t -> bigint
          val stime : t -> bigint
          val utime : t -> bigint
          val cmajflt : t -> bigint
          val majflt : t -> bigint
          val cminflt : t -> bigint
          val minflt : t -> bigint
          val flags : t -> bigint
          val tpgid : t -> int
          val tty_nr : t -> int
          val session : t -> int
          val pgrp : t -> Core.Std.Pid.t option
          val ppid : t -> Core.Std.Pid.t option
          val state : t -> char
          val comm : t -> string
          module Fields :
            sig
              val names : string list
              val policy : (t, bigint) Fieldslib.Field.t
              val rt_priority : (t, bigint) Fieldslib.Field.t
              val processor : (t, int) Fieldslib.Field.t
              val exit_signal : (t, int) Fieldslib.Field.t
              val cnswap : (t, bigint) Fieldslib.Field.t
              val nswap : (t, bigint) Fieldslib.Field.t
              val wchan : (t, bigint) Fieldslib.Field.t
              val sigcatch : (t, bigint) Fieldslib.Field.t
              val sigignore : (t, bigint) Fieldslib.Field.t
              val blocked : (t, bigint) Fieldslib.Field.t
              val signal : (t, bigint) Fieldslib.Field.t
              val kstkeip : (t, bigint) Fieldslib.Field.t
              val kstkesp : (t, bigint) Fieldslib.Field.t
              val startstack : (t, bigint) Fieldslib.Field.t
              val endcode : (t, bigint) Fieldslib.Field.t
              val startcode : (t, bigint) Fieldslib.Field.t
              val rlim : (t, bigint) Fieldslib.Field.t
              val rss : (t, bigint) Fieldslib.Field.t
              val vsize : (t, bigint) Fieldslib.Field.t
              val starttime : (t, bigint) Fieldslib.Field.t
              val itrealvalue : (t, bigint) Fieldslib.Field.t
              val unused : (t, bigint) Fieldslib.Field.t
              val nice : (t, bigint) Fieldslib.Field.t
              val priority : (t, bigint) Fieldslib.Field.t
              val cstime : (t, bigint) Fieldslib.Field.t
              val cutime : (t, bigint) Fieldslib.Field.t
              val stime : (t, bigint) Fieldslib.Field.t
              val utime : (t, bigint) Fieldslib.Field.t
              val cmajflt : (t, bigint) Fieldslib.Field.t
              val majflt : (t, bigint) Fieldslib.Field.t
              val cminflt : (t, bigint) Fieldslib.Field.t
              val minflt : (t, bigint) Fieldslib.Field.t
              val flags : (t, bigint) Fieldslib.Field.t
              val tpgid : (t, int) Fieldslib.Field.t
              val tty_nr : (t, int) Fieldslib.Field.t
              val session : (t, int) Fieldslib.Field.t
              val pgrp : (t, Core.Std.Pid.t option) Fieldslib.Field.t
              val ppid : (t, Core.Std.Pid.t option) Fieldslib.Field.t
              val state : (t, char) Fieldslib.Field.t
              val comm : (t, string) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                comm:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
                state:('acc__ -> (t, char) Fieldslib.Field.t -> 'acc__) ->
                ppid:('acc__ ->
                      (t, Core.Std.Pid.t option) Fieldslib.Field.t -> 'acc__) ->
                pgrp:('acc__ ->
                      (t, Core.Std.Pid.t option) Fieldslib.Field.t -> 'acc__) ->
                session:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tty_nr:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tpgid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                flags:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                minflt:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                cminflt:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                majflt:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                cmajflt:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                utime:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                stime:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                cutime:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                cstime:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                priority:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                nice:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                unused:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                itrealvalue:('acc__ ->
                             (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                starttime:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                vsize:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                rss:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                rlim:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                startcode:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                endcode:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                startstack:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                kstkesp:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                kstkeip:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                signal:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                blocked:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                sigignore:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                sigcatch:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                wchan:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                nswap:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                cnswap:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                exit_signal:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                processor:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rt_priority:('acc__ ->
                             (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                policy:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                comm:((t, string) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
                state:((t, char) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> char) * 'compile_acc__) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Core.Std.Pid.t option) * 'compile_acc__) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Core.Std.Pid.t option) * 'compile_acc__) ->
                session:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tty_nr:((t, int) Fieldslib.Field.t ->
                        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tpgid:((t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                flags:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                minflt:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                cminflt:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                majflt:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                cmajflt:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                utime:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                stime:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                cutime:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                cstime:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                priority:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
                nice:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                unused:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> bigint) * 'compile_acc__) ->
                starttime:((t, bigint) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> bigint) * 'compile_acc__) ->
                vsize:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                rss:((t, bigint) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                rlim:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                startcode:((t, bigint) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> bigint) * 'compile_acc__) ->
                endcode:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                startstack:((t, bigint) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> bigint) * 'compile_acc__) ->
                kstkesp:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                kstkeip:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                signal:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                blocked:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
                sigignore:((t, bigint) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> bigint) * 'compile_acc__) ->
                sigcatch:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
                wchan:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                nswap:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                cnswap:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                exit_signal:((t, int) Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> int) * 'compile_acc__) ->
                processor:((t, int) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> int) * 'compile_acc__) ->
                rt_priority:((t, bigint) Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> bigint) * 'compile_acc__) ->
                policy:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> t) * 'compile_acc__
              val create :
                comm:string ->
                state:char ->
                ppid:Core.Std.Pid.t option ->
                pgrp:Core.Std.Pid.t option ->
                session:int ->
                tty_nr:int ->
                tpgid:int ->
                flags:bigint ->
                minflt:bigint ->
                cminflt:bigint ->
                majflt:bigint ->
                cmajflt:bigint ->
                utime:bigint ->
                stime:bigint ->
                cutime:bigint ->
                cstime:bigint ->
                priority:bigint ->
                nice:bigint ->
                unused:bigint ->
                itrealvalue:bigint ->
                starttime:bigint ->
                vsize:bigint ->
                rss:bigint ->
                rlim:bigint ->
                startcode:bigint ->
                endcode:bigint ->
                startstack:bigint ->
                kstkesp:bigint ->
                kstkeip:bigint ->
                signal:bigint ->
                blocked:bigint ->
                sigignore:bigint ->
                sigcatch:bigint ->
                wchan:bigint ->
                nswap:bigint ->
                cnswap:bigint ->
                exit_signal:int ->
                processor:int -> rt_priority:bigint -> policy:bigint -> t
              val map :
                comm:((t, string) Fieldslib.Field.t -> string) ->
                state:((t, char) Fieldslib.Field.t -> char) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                      Core.Std.Pid.t option) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                      Core.Std.Pid.t option) ->
                session:((t, int) Fieldslib.Field.t -> int) ->
                tty_nr:((t, int) Fieldslib.Field.t -> int) ->
                tpgid:((t, int) Fieldslib.Field.t -> int) ->
                flags:((t, bigint) Fieldslib.Field.t -> bigint) ->
                minflt:((t, bigint) Fieldslib.Field.t -> bigint) ->
                cminflt:((t, bigint) Fieldslib.Field.t -> bigint) ->
                majflt:((t, bigint) Fieldslib.Field.t -> bigint) ->
                cmajflt:((t, bigint) Fieldslib.Field.t -> bigint) ->
                utime:((t, bigint) Fieldslib.Field.t -> bigint) ->
                stime:((t, bigint) Fieldslib.Field.t -> bigint) ->
                cutime:((t, bigint) Fieldslib.Field.t -> bigint) ->
                cstime:((t, bigint) Fieldslib.Field.t -> bigint) ->
                priority:((t, bigint) Fieldslib.Field.t -> bigint) ->
                nice:((t, bigint) Fieldslib.Field.t -> bigint) ->
                unused:((t, bigint) Fieldslib.Field.t -> bigint) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t -> bigint) ->
                starttime:((t, bigint) Fieldslib.Field.t -> bigint) ->
                vsize:((t, bigint) Fieldslib.Field.t -> bigint) ->
                rss:((t, bigint) Fieldslib.Field.t -> bigint) ->
                rlim:((t, bigint) Fieldslib.Field.t -> bigint) ->
                startcode:((t, bigint) Fieldslib.Field.t -> bigint) ->
                endcode:((t, bigint) Fieldslib.Field.t -> bigint) ->
                startstack:((t, bigint) Fieldslib.Field.t -> bigint) ->
                kstkesp:((t, bigint) Fieldslib.Field.t -> bigint) ->
                kstkeip:((t, bigint) Fieldslib.Field.t -> bigint) ->
                signal:((t, bigint) Fieldslib.Field.t -> bigint) ->
                blocked:((t, bigint) Fieldslib.Field.t -> bigint) ->
                sigignore:((t, bigint) Fieldslib.Field.t -> bigint) ->
                sigcatch:((t, bigint) Fieldslib.Field.t -> bigint) ->
                wchan:((t, bigint) Fieldslib.Field.t -> bigint) ->
                nswap:((t, bigint) Fieldslib.Field.t -> bigint) ->
                cnswap:((t, bigint) Fieldslib.Field.t -> bigint) ->
                exit_signal:((t, int) Fieldslib.Field.t -> int) ->
                processor:((t, int) Fieldslib.Field.t -> int) ->
                rt_priority:((t, bigint) Fieldslib.Field.t -> bigint) ->
                policy:((t, bigint) Fieldslib.Field.t -> bigint) -> t
              val iter :
                comm:((t, string) Fieldslib.Field.t -> unit) ->
                state:((t, char) Fieldslib.Field.t -> unit) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> unit) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> unit) ->
                session:((t, int) Fieldslib.Field.t -> unit) ->
                tty_nr:((t, int) Fieldslib.Field.t -> unit) ->
                tpgid:((t, int) Fieldslib.Field.t -> unit) ->
                flags:((t, bigint) Fieldslib.Field.t -> unit) ->
                minflt:((t, bigint) Fieldslib.Field.t -> unit) ->
                cminflt:((t, bigint) Fieldslib.Field.t -> unit) ->
                majflt:((t, bigint) Fieldslib.Field.t -> unit) ->
                cmajflt:((t, bigint) Fieldslib.Field.t -> unit) ->
                utime:((t, bigint) Fieldslib.Field.t -> unit) ->
                stime:((t, bigint) Fieldslib.Field.t -> unit) ->
                cutime:((t, bigint) Fieldslib.Field.t -> unit) ->
                cstime:((t, bigint) Fieldslib.Field.t -> unit) ->
                priority:((t, bigint) Fieldslib.Field.t -> unit) ->
                nice:((t, bigint) Fieldslib.Field.t -> unit) ->
                unused:((t, bigint) Fieldslib.Field.t -> unit) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t -> unit) ->
                starttime:((t, bigint) Fieldslib.Field.t -> unit) ->
                vsize:((t, bigint) Fieldslib.Field.t -> unit) ->
                rss:((t, bigint) Fieldslib.Field.t -> unit) ->
                rlim:((t, bigint) Fieldslib.Field.t -> unit) ->
                startcode:((t, bigint) Fieldslib.Field.t -> unit) ->
                endcode:((t, bigint) Fieldslib.Field.t -> unit) ->
                startstack:((t, bigint) Fieldslib.Field.t -> unit) ->
                kstkesp:((t, bigint) Fieldslib.Field.t -> unit) ->
                kstkeip:((t, bigint) Fieldslib.Field.t -> unit) ->
                signal:((t, bigint) Fieldslib.Field.t -> unit) ->
                blocked:((t, bigint) Fieldslib.Field.t -> unit) ->
                sigignore:((t, bigint) Fieldslib.Field.t -> unit) ->
                sigcatch:((t, bigint) Fieldslib.Field.t -> unit) ->
                wchan:((t, bigint) Fieldslib.Field.t -> unit) ->
                nswap:((t, bigint) Fieldslib.Field.t -> unit) ->
                cnswap:((t, bigint) Fieldslib.Field.t -> unit) ->
                exit_signal:((t, int) Fieldslib.Field.t -> unit) ->
                processor:((t, int) Fieldslib.Field.t -> unit) ->
                rt_priority:((t, bigint) Fieldslib.Field.t -> unit) ->
                policy:((t, bigint) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                comm:((t, string) Fieldslib.Field.t -> bool) ->
                state:((t, char) Fieldslib.Field.t -> bool) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> bool) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> bool) ->
                session:((t, int) Fieldslib.Field.t -> bool) ->
                tty_nr:((t, int) Fieldslib.Field.t -> bool) ->
                tpgid:((t, int) Fieldslib.Field.t -> bool) ->
                flags:((t, bigint) Fieldslib.Field.t -> bool) ->
                minflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                cminflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                majflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                cmajflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                utime:((t, bigint) Fieldslib.Field.t -> bool) ->
                stime:((t, bigint) Fieldslib.Field.t -> bool) ->
                cutime:((t, bigint) Fieldslib.Field.t -> bool) ->
                cstime:((t, bigint) Fieldslib.Field.t -> bool) ->
                priority:((t, bigint) Fieldslib.Field.t -> bool) ->
                nice:((t, bigint) Fieldslib.Field.t -> bool) ->
                unused:((t, bigint) Fieldslib.Field.t -> bool) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t -> bool) ->
                starttime:((t, bigint) Fieldslib.Field.t -> bool) ->
                vsize:((t, bigint) Fieldslib.Field.t -> bool) ->
                rss:((t, bigint) Fieldslib.Field.t -> bool) ->
                rlim:((t, bigint) Fieldslib.Field.t -> bool) ->
                startcode:((t, bigint) Fieldslib.Field.t -> bool) ->
                endcode:((t, bigint) Fieldslib.Field.t -> bool) ->
                startstack:((t, bigint) Fieldslib.Field.t -> bool) ->
                kstkesp:((t, bigint) Fieldslib.Field.t -> bool) ->
                kstkeip:((t, bigint) Fieldslib.Field.t -> bool) ->
                signal:((t, bigint) Fieldslib.Field.t -> bool) ->
                blocked:((t, bigint) Fieldslib.Field.t -> bool) ->
                sigignore:((t, bigint) Fieldslib.Field.t -> bool) ->
                sigcatch:((t, bigint) Fieldslib.Field.t -> bool) ->
                wchan:((t, bigint) Fieldslib.Field.t -> bool) ->
                nswap:((t, bigint) Fieldslib.Field.t -> bool) ->
                cnswap:((t, bigint) Fieldslib.Field.t -> bool) ->
                exit_signal:((t, int) Fieldslib.Field.t -> bool) ->
                processor:((t, int) Fieldslib.Field.t -> bool) ->
                rt_priority:((t, bigint) Fieldslib.Field.t -> bool) ->
                policy:((t, bigint) Fieldslib.Field.t -> bool) -> bool
              val exists :
                comm:((t, string) Fieldslib.Field.t -> bool) ->
                state:((t, char) Fieldslib.Field.t -> bool) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> bool) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> bool) ->
                session:((t, int) Fieldslib.Field.t -> bool) ->
                tty_nr:((t, int) Fieldslib.Field.t -> bool) ->
                tpgid:((t, int) Fieldslib.Field.t -> bool) ->
                flags:((t, bigint) Fieldslib.Field.t -> bool) ->
                minflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                cminflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                majflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                cmajflt:((t, bigint) Fieldslib.Field.t -> bool) ->
                utime:((t, bigint) Fieldslib.Field.t -> bool) ->
                stime:((t, bigint) Fieldslib.Field.t -> bool) ->
                cutime:((t, bigint) Fieldslib.Field.t -> bool) ->
                cstime:((t, bigint) Fieldslib.Field.t -> bool) ->
                priority:((t, bigint) Fieldslib.Field.t -> bool) ->
                nice:((t, bigint) Fieldslib.Field.t -> bool) ->
                unused:((t, bigint) Fieldslib.Field.t -> bool) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t -> bool) ->
                starttime:((t, bigint) Fieldslib.Field.t -> bool) ->
                vsize:((t, bigint) Fieldslib.Field.t -> bool) ->
                rss:((t, bigint) Fieldslib.Field.t -> bool) ->
                rlim:((t, bigint) Fieldslib.Field.t -> bool) ->
                startcode:((t, bigint) Fieldslib.Field.t -> bool) ->
                endcode:((t, bigint) Fieldslib.Field.t -> bool) ->
                startstack:((t, bigint) Fieldslib.Field.t -> bool) ->
                kstkesp:((t, bigint) Fieldslib.Field.t -> bool) ->
                kstkeip:((t, bigint) Fieldslib.Field.t -> bool) ->
                signal:((t, bigint) Fieldslib.Field.t -> bool) ->
                blocked:((t, bigint) Fieldslib.Field.t -> bool) ->
                sigignore:((t, bigint) Fieldslib.Field.t -> bool) ->
                sigcatch:((t, bigint) Fieldslib.Field.t -> bool) ->
                wchan:((t, bigint) Fieldslib.Field.t -> bool) ->
                nswap:((t, bigint) Fieldslib.Field.t -> bool) ->
                cnswap:((t, bigint) Fieldslib.Field.t -> bool) ->
                exit_signal:((t, int) Fieldslib.Field.t -> bool) ->
                processor:((t, int) Fieldslib.Field.t -> bool) ->
                rt_priority:((t, bigint) Fieldslib.Field.t -> bool) ->
                policy:((t, bigint) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                comm:((t, string) Fieldslib.Field.t -> 'elem__) ->
                state:((t, char) Fieldslib.Field.t -> 'elem__) ->
                ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> 'elem__) ->
                pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t -> 'elem__) ->
                session:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tty_nr:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tpgid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                flags:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                minflt:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                cminflt:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                majflt:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                cmajflt:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                utime:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                stime:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                cutime:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                cstime:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                priority:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                nice:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                unused:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                itrealvalue:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                starttime:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                vsize:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                rss:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                rlim:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                startcode:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                endcode:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                startstack:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                kstkesp:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                kstkeip:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                signal:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                blocked:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                sigignore:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                sigcatch:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                wchan:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                nswap:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                cnswap:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                exit_signal:((t, int) Fieldslib.Field.t -> 'elem__) ->
                processor:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rt_priority:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                policy:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    comm:((t, string) Fieldslib.Field.t ->
                          t -> string -> unit) ->
                    state:((t, char) Fieldslib.Field.t -> t -> char -> unit) ->
                    ppid:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                          t -> Core.Std.Pid.t option -> unit) ->
                    pgrp:((t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                          t -> Core.Std.Pid.t option -> unit) ->
                    session:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tty_nr:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tpgid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    flags:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    minflt:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    cminflt:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    majflt:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    cmajflt:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    utime:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    stime:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    cutime:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    cstime:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    priority:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                    nice:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                    unused:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    itrealvalue:((t, bigint) Fieldslib.Field.t ->
                                 t -> bigint -> unit) ->
                    starttime:((t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> unit) ->
                    vsize:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    rss:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                    rlim:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                    startcode:((t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> unit) ->
                    endcode:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    startstack:((t, bigint) Fieldslib.Field.t ->
                                t -> bigint -> unit) ->
                    kstkesp:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    kstkeip:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    signal:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    blocked:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                    sigignore:((t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> unit) ->
                    sigcatch:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                    wchan:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    nswap:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    cnswap:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    exit_signal:((t, int) Fieldslib.Field.t ->
                                 t -> int -> unit) ->
                    processor:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rt_priority:((t, bigint) Fieldslib.Field.t ->
                                 t -> bigint -> unit) ->
                    policy:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    comm:('acc__ ->
                          (t, string) Fieldslib.Field.t ->
                          t -> string -> 'acc__) ->
                    state:('acc__ ->
                           (t, char) Fieldslib.Field.t -> t -> char -> 'acc__) ->
                    ppid:('acc__ ->
                          (t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                          t -> Core.Std.Pid.t option -> 'acc__) ->
                    pgrp:('acc__ ->
                          (t, Core.Std.Pid.t option) Fieldslib.Field.t ->
                          t -> Core.Std.Pid.t option -> 'acc__) ->
                    session:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tty_nr:('acc__ ->
                            (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tpgid:('acc__ ->
                           (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    flags:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    minflt:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    cminflt:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    majflt:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    cmajflt:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    utime:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    stime:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    cutime:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    cstime:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    priority:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                    nice:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                    unused:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    itrealvalue:('acc__ ->
                                 (t, bigint) Fieldslib.Field.t ->
                                 t -> bigint -> 'acc__) ->
                    starttime:('acc__ ->
                               (t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> 'acc__) ->
                    vsize:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    rss:('acc__ ->
                         (t, bigint) Fieldslib.Field.t ->
                         t -> bigint -> 'acc__) ->
                    rlim:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                    startcode:('acc__ ->
                               (t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> 'acc__) ->
                    endcode:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    startstack:('acc__ ->
                                (t, bigint) Fieldslib.Field.t ->
                                t -> bigint -> 'acc__) ->
                    kstkesp:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    kstkeip:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    signal:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    blocked:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                    sigignore:('acc__ ->
                               (t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> 'acc__) ->
                    sigcatch:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                    wchan:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    nswap:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    cnswap:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    exit_signal:('acc__ ->
                                 (t, int) Fieldslib.Field.t ->
                                 t -> int -> 'acc__) ->
                    processor:('acc__ ->
                               (t, int) Fieldslib.Field.t ->
                               t -> int -> 'acc__) ->
                    rt_priority:('acc__ ->
                                 (t, bigint) Fieldslib.Field.t ->
                                 t -> bigint -> 'acc__) ->
                    policy:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                    'acc__
                end
            end
          val extract_command :
            string -> [ `command of string ] * [ `rest of string ]
          val of_string : string -> t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      module Statm :
        sig
          type t =
            Procfs.Process.Statm.t = {
            size : bigint;
            resident : bigint;
            share : bigint;
            text : bigint;
            lib : bigint;
            data : bigint;
            dt : bigint;
          }
          val dt : t -> bigint
          val data : t -> bigint
          val lib : t -> bigint
          val text : t -> bigint
          val share : t -> bigint
          val resident : t -> bigint
          val size : t -> bigint
          module Fields :
            sig
              val names : string list
              val dt : (t, bigint) Fieldslib.Field.t
              val data : (t, bigint) Fieldslib.Field.t
              val lib : (t, bigint) Fieldslib.Field.t
              val text : (t, bigint) Fieldslib.Field.t
              val share : (t, bigint) Fieldslib.Field.t
              val resident : (t, bigint) Fieldslib.Field.t
              val size : (t, bigint) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                size:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                resident:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                share:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                text:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                lib:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                data:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                dt:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                size:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                resident:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
                share:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
                text:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                lib:((t, bigint) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                data:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                dt:((t, bigint) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> t) * 'compile_acc__
              val create :
                size:bigint ->
                resident:bigint ->
                share:bigint ->
                text:bigint -> lib:bigint -> data:bigint -> dt:bigint -> t
              val map :
                size:((t, bigint) Fieldslib.Field.t -> bigint) ->
                resident:((t, bigint) Fieldslib.Field.t -> bigint) ->
                share:((t, bigint) Fieldslib.Field.t -> bigint) ->
                text:((t, bigint) Fieldslib.Field.t -> bigint) ->
                lib:((t, bigint) Fieldslib.Field.t -> bigint) ->
                data:((t, bigint) Fieldslib.Field.t -> bigint) ->
                dt:((t, bigint) Fieldslib.Field.t -> bigint) -> t
              val iter :
                size:((t, bigint) Fieldslib.Field.t -> unit) ->
                resident:((t, bigint) Fieldslib.Field.t -> unit) ->
                share:((t, bigint) Fieldslib.Field.t -> unit) ->
                text:((t, bigint) Fieldslib.Field.t -> unit) ->
                lib:((t, bigint) Fieldslib.Field.t -> unit) ->
                data:((t, bigint) Fieldslib.Field.t -> unit) ->
                dt:((t, bigint) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                size:((t, bigint) Fieldslib.Field.t -> bool) ->
                resident:((t, bigint) Fieldslib.Field.t -> bool) ->
                share:((t, bigint) Fieldslib.Field.t -> bool) ->
                text:((t, bigint) Fieldslib.Field.t -> bool) ->
                lib:((t, bigint) Fieldslib.Field.t -> bool) ->
                data:((t, bigint) Fieldslib.Field.t -> bool) ->
                dt:((t, bigint) Fieldslib.Field.t -> bool) -> bool
              val exists :
                size:((t, bigint) Fieldslib.Field.t -> bool) ->
                resident:((t, bigint) Fieldslib.Field.t -> bool) ->
                share:((t, bigint) Fieldslib.Field.t -> bool) ->
                text:((t, bigint) Fieldslib.Field.t -> bool) ->
                lib:((t, bigint) Fieldslib.Field.t -> bool) ->
                data:((t, bigint) Fieldslib.Field.t -> bool) ->
                dt:((t, bigint) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                size:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                resident:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                share:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                text:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                lib:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                data:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
                dt:((t, bigint) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    size:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                    resident:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                    share:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                    text:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                    lib:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                    data:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                    dt:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    size:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                    resident:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                    share:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                    text:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                    lib:('acc__ ->
                         (t, bigint) Fieldslib.Field.t ->
                         t -> bigint -> 'acc__) ->
                    data:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                    dt:('acc__ ->
                        (t, bigint) Fieldslib.Field.t ->
                        t -> bigint -> 'acc__) ->
                    'acc__
                end
            end
          val of_string : string -> t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      module Status :
        sig
          type t =
            Procfs.Process.Status.t = {
            uid : int;
            euid : int;
            suid : int;
            fsuid : int;
            gid : int;
            egid : int;
            sgid : int;
            fsgid : int;
          }
          val fsgid : t -> int
          val sgid : t -> int
          val egid : t -> int
          val gid : t -> int
          val fsuid : t -> int
          val suid : t -> int
          val euid : t -> int
          val uid : t -> int
          module Fields :
            sig
              val names : string list
              val fsgid : (t, int) Fieldslib.Field.t
              val sgid : (t, int) Fieldslib.Field.t
              val egid : (t, int) Fieldslib.Field.t
              val gid : (t, int) Fieldslib.Field.t
              val fsuid : (t, int) Fieldslib.Field.t
              val suid : (t, int) Fieldslib.Field.t
              val euid : (t, int) Fieldslib.Field.t
              val uid : (t, int) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                uid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                euid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                suid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                fsuid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                gid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                egid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                sgid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                fsgid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                uid:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                euid:((t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                suid:((t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                fsuid:((t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                gid:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                egid:((t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                sgid:((t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                fsgid:((t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> t) * 'compile_acc__
              val create :
                uid:int ->
                euid:int ->
                suid:int ->
                fsuid:int ->
                gid:int -> egid:int -> sgid:int -> fsgid:int -> t
              val map :
                uid:((t, int) Fieldslib.Field.t -> int) ->
                euid:((t, int) Fieldslib.Field.t -> int) ->
                suid:((t, int) Fieldslib.Field.t -> int) ->
                fsuid:((t, int) Fieldslib.Field.t -> int) ->
                gid:((t, int) Fieldslib.Field.t -> int) ->
                egid:((t, int) Fieldslib.Field.t -> int) ->
                sgid:((t, int) Fieldslib.Field.t -> int) ->
                fsgid:((t, int) Fieldslib.Field.t -> int) -> t
              val iter :
                uid:((t, int) Fieldslib.Field.t -> unit) ->
                euid:((t, int) Fieldslib.Field.t -> unit) ->
                suid:((t, int) Fieldslib.Field.t -> unit) ->
                fsuid:((t, int) Fieldslib.Field.t -> unit) ->
                gid:((t, int) Fieldslib.Field.t -> unit) ->
                egid:((t, int) Fieldslib.Field.t -> unit) ->
                sgid:((t, int) Fieldslib.Field.t -> unit) ->
                fsgid:((t, int) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                uid:((t, int) Fieldslib.Field.t -> bool) ->
                euid:((t, int) Fieldslib.Field.t -> bool) ->
                suid:((t, int) Fieldslib.Field.t -> bool) ->
                fsuid:((t, int) Fieldslib.Field.t -> bool) ->
                gid:((t, int) Fieldslib.Field.t -> bool) ->
                egid:((t, int) Fieldslib.Field.t -> bool) ->
                sgid:((t, int) Fieldslib.Field.t -> bool) ->
                fsgid:((t, int) Fieldslib.Field.t -> bool) -> bool
              val exists :
                uid:((t, int) Fieldslib.Field.t -> bool) ->
                euid:((t, int) Fieldslib.Field.t -> bool) ->
                suid:((t, int) Fieldslib.Field.t -> bool) ->
                fsuid:((t, int) Fieldslib.Field.t -> bool) ->
                gid:((t, int) Fieldslib.Field.t -> bool) ->
                egid:((t, int) Fieldslib.Field.t -> bool) ->
                sgid:((t, int) Fieldslib.Field.t -> bool) ->
                fsgid:((t, int) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                uid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                euid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                suid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                fsuid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                gid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                egid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                sgid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                fsgid:((t, int) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    uid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    euid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    suid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    fsuid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    gid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    egid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    sgid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    fsgid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    uid:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    euid:('acc__ ->
                          (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    suid:('acc__ ->
                          (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    fsuid:('acc__ ->
                           (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    gid:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    egid:('acc__ ->
                          (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    sgid:('acc__ ->
                          (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    fsgid:('acc__ ->
                           (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    'acc__
                end
            end
          val of_string : string -> t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      module Fd :
        sig
          type fd_stat =
            Procfs.Process.Fd.fd_stat =
              Path of string
            | Socket of Inode.t
            | Pipe of Inode.t
            | Inotify
          type t = Procfs.Process.Fd.t = { fd : int; fd_stat : fd_stat; }
          val fd_stat : t -> fd_stat
          val fd : t -> int
          module Fields :
            sig
              val names : string list
              val fd_stat : (t, fd_stat) Fieldslib.Field.t
              val fd : (t, int) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                fd:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                fd_stat:('acc__ -> (t, fd_stat) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                fd:((t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> fd_stat) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> t) * 'compile_acc__
              val create : fd:int -> fd_stat:fd_stat -> t
              val map :
                fd:((t, int) Fieldslib.Field.t -> int) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t -> fd_stat) -> t
              val iter :
                fd:((t, int) Fieldslib.Field.t -> unit) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                fd:((t, int) Fieldslib.Field.t -> bool) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t -> bool) -> bool
              val exists :
                fd:((t, int) Fieldslib.Field.t -> bool) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                fd:((t, int) Fieldslib.Field.t -> 'elem__) ->
                fd_stat:((t, fd_stat) Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    fd:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    fd_stat:((t, fd_stat) Fieldslib.Field.t ->
                             t -> fd_stat -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    fd:('acc__ ->
                        (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    fd_stat:('acc__ ->
                             (t, fd_stat) Fieldslib.Field.t ->
                             t -> fd_stat -> 'acc__) ->
                    'acc__
                end
            end
          val fd_stat_of_sexp : Sexplib.Sexp.t -> fd_stat
          val sexp_of_fd_stat : fd_stat -> Sexplib.Sexp.t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      type t =
        Procfs.Process.t = {
        pid : Core.Std.Pid.t;
        cmdline : string;
        cwd : string option;
        environ : string option;
        exe : string option;
        root : string option;
        limits : Limits.t option;
        stat : Stat.t;
        statm : Statm.t;
        status : Status.t;
        task_stats : Stat.t Core.Std.Pid.Map.t;
        top_command : string;
        fds : Fd.t list option;
        oom_adj : int;
        oom_score : int;
      }
      val oom_score : t -> int
      val oom_adj : t -> int
      val fds : t -> Fd.t list option
      val top_command : t -> string
      val task_stats : t -> Stat.t Core.Std.Pid.Map.t
      val status : t -> Status.t
      val statm : t -> Statm.t
      val stat : t -> Stat.t
      val limits : t -> Limits.t option
      val root : t -> string option
      val exe : t -> string option
      val environ : t -> string option
      val cwd : t -> string option
      val cmdline : t -> string
      val pid : t -> Core.Std.Pid.t
      module Fields :
        sig
          val names : string list
          val oom_score : (t, int) Fieldslib.Field.t
          val oom_adj : (t, int) Fieldslib.Field.t
          val fds : (t, Fd.t list option) Fieldslib.Field.t
          val top_command : (t, string) Fieldslib.Field.t
          val task_stats : (t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t
          val status : (t, Status.t) Fieldslib.Field.t
          val statm : (t, Statm.t) Fieldslib.Field.t
          val stat : (t, Stat.t) Fieldslib.Field.t
          val limits : (t, Limits.t option) Fieldslib.Field.t
          val root : (t, string option) Fieldslib.Field.t
          val exe : (t, string option) Fieldslib.Field.t
          val environ : (t, string option) Fieldslib.Field.t
          val cwd : (t, string option) Fieldslib.Field.t
          val cmdline : (t, string) Fieldslib.Field.t
          val pid : (t, Core.Std.Pid.t) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            pid:('acc__ -> (t, Core.Std.Pid.t) Fieldslib.Field.t -> 'acc__) ->
            cmdline:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            cwd:('acc__ -> (t, string option) Fieldslib.Field.t -> 'acc__) ->
            environ:('acc__ -> (t, string option) Fieldslib.Field.t -> 'acc__) ->
            exe:('acc__ -> (t, string option) Fieldslib.Field.t -> 'acc__) ->
            root:('acc__ -> (t, string option) Fieldslib.Field.t -> 'acc__) ->
            limits:('acc__ ->
                    (t, Limits.t option) Fieldslib.Field.t -> 'acc__) ->
            stat:('acc__ -> (t, Stat.t) Fieldslib.Field.t -> 'acc__) ->
            statm:('acc__ -> (t, Statm.t) Fieldslib.Field.t -> 'acc__) ->
            status:('acc__ -> (t, Status.t) Fieldslib.Field.t -> 'acc__) ->
            task_stats:('acc__ ->
                        (t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        'acc__) ->
            top_command:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            fds:('acc__ -> (t, Fd.t list option) Fieldslib.Field.t -> 'acc__) ->
            oom_adj:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
            oom_score:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> Core.Std.Pid.t) * 'compile_acc__) ->
            cmdline:((t, string) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            cwd:((t, string option) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> string option) * 'compile_acc__) ->
            environ:((t, string option) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> string option) * 'compile_acc__) ->
            exe:((t, string option) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> string option) * 'compile_acc__) ->
            root:((t, string option) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> string option) * 'compile_acc__) ->
            limits:((t, Limits.t option) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Limits.t option) * 'compile_acc__) ->
            stat:((t, Stat.t) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> Stat.t) * 'compile_acc__) ->
            statm:((t, Statm.t) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> Statm.t) * 'compile_acc__) ->
            status:((t, Status.t) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> Status.t) * 'compile_acc__) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Stat.t Core.Std.Pid.Map.t) *
                        'compile_acc__) ->
            top_command:((t, string) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> string) * 'compile_acc__) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> Fd.t list option) * 'compile_acc__) ->
            oom_adj:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            oom_score:((t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> t) * 'compile_acc__
          val create :
            pid:Core.Std.Pid.t ->
            cmdline:string ->
            cwd:string option ->
            environ:string option ->
            exe:string option ->
            root:string option ->
            limits:Limits.t option ->
            stat:Stat.t ->
            statm:Statm.t ->
            status:Status.t ->
            task_stats:Stat.t Core.Std.Pid.Map.t ->
            top_command:string ->
            fds:Fd.t list option -> oom_adj:int -> oom_score:int -> t
          val map :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t -> Core.Std.Pid.t) ->
            cmdline:((t, string) Fieldslib.Field.t -> string) ->
            cwd:((t, string option) Fieldslib.Field.t -> string option) ->
            environ:((t, string option) Fieldslib.Field.t -> string option) ->
            exe:((t, string option) Fieldslib.Field.t -> string option) ->
            root:((t, string option) Fieldslib.Field.t -> string option) ->
            limits:((t, Limits.t option) Fieldslib.Field.t -> Limits.t option) ->
            stat:((t, Stat.t) Fieldslib.Field.t -> Stat.t) ->
            statm:((t, Statm.t) Fieldslib.Field.t -> Statm.t) ->
            status:((t, Status.t) Fieldslib.Field.t -> Status.t) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        Stat.t Core.Std.Pid.Map.t) ->
            top_command:((t, string) Fieldslib.Field.t -> string) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t -> Fd.t list option) ->
            oom_adj:((t, int) Fieldslib.Field.t -> int) ->
            oom_score:((t, int) Fieldslib.Field.t -> int) -> t
          val iter :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t -> unit) ->
            cmdline:((t, string) Fieldslib.Field.t -> unit) ->
            cwd:((t, string option) Fieldslib.Field.t -> unit) ->
            environ:((t, string option) Fieldslib.Field.t -> unit) ->
            exe:((t, string option) Fieldslib.Field.t -> unit) ->
            root:((t, string option) Fieldslib.Field.t -> unit) ->
            limits:((t, Limits.t option) Fieldslib.Field.t -> unit) ->
            stat:((t, Stat.t) Fieldslib.Field.t -> unit) ->
            statm:((t, Statm.t) Fieldslib.Field.t -> unit) ->
            status:((t, Status.t) Fieldslib.Field.t -> unit) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        unit) ->
            top_command:((t, string) Fieldslib.Field.t -> unit) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t -> unit) ->
            oom_adj:((t, int) Fieldslib.Field.t -> unit) ->
            oom_score:((t, int) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t -> bool) ->
            cmdline:((t, string) Fieldslib.Field.t -> bool) ->
            cwd:((t, string option) Fieldslib.Field.t -> bool) ->
            environ:((t, string option) Fieldslib.Field.t -> bool) ->
            exe:((t, string option) Fieldslib.Field.t -> bool) ->
            root:((t, string option) Fieldslib.Field.t -> bool) ->
            limits:((t, Limits.t option) Fieldslib.Field.t -> bool) ->
            stat:((t, Stat.t) Fieldslib.Field.t -> bool) ->
            statm:((t, Statm.t) Fieldslib.Field.t -> bool) ->
            status:((t, Status.t) Fieldslib.Field.t -> bool) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        bool) ->
            top_command:((t, string) Fieldslib.Field.t -> bool) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t -> bool) ->
            oom_adj:((t, int) Fieldslib.Field.t -> bool) ->
            oom_score:((t, int) Fieldslib.Field.t -> bool) -> bool
          val exists :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t -> bool) ->
            cmdline:((t, string) Fieldslib.Field.t -> bool) ->
            cwd:((t, string option) Fieldslib.Field.t -> bool) ->
            environ:((t, string option) Fieldslib.Field.t -> bool) ->
            exe:((t, string option) Fieldslib.Field.t -> bool) ->
            root:((t, string option) Fieldslib.Field.t -> bool) ->
            limits:((t, Limits.t option) Fieldslib.Field.t -> bool) ->
            stat:((t, Stat.t) Fieldslib.Field.t -> bool) ->
            statm:((t, Statm.t) Fieldslib.Field.t -> bool) ->
            status:((t, Status.t) Fieldslib.Field.t -> bool) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        bool) ->
            top_command:((t, string) Fieldslib.Field.t -> bool) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t -> bool) ->
            oom_adj:((t, int) Fieldslib.Field.t -> bool) ->
            oom_score:((t, int) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            pid:((t, Core.Std.Pid.t) Fieldslib.Field.t -> 'elem__) ->
            cmdline:((t, string) Fieldslib.Field.t -> 'elem__) ->
            cwd:((t, string option) Fieldslib.Field.t -> 'elem__) ->
            environ:((t, string option) Fieldslib.Field.t -> 'elem__) ->
            exe:((t, string option) Fieldslib.Field.t -> 'elem__) ->
            root:((t, string option) Fieldslib.Field.t -> 'elem__) ->
            limits:((t, Limits.t option) Fieldslib.Field.t -> 'elem__) ->
            stat:((t, Stat.t) Fieldslib.Field.t -> 'elem__) ->
            statm:((t, Statm.t) Fieldslib.Field.t -> 'elem__) ->
            status:((t, Status.t) Fieldslib.Field.t -> 'elem__) ->
            task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                        'elem__) ->
            top_command:((t, string) Fieldslib.Field.t -> 'elem__) ->
            fds:((t, Fd.t list option) Fieldslib.Field.t -> 'elem__) ->
            oom_adj:((t, int) Fieldslib.Field.t -> 'elem__) ->
            oom_score:((t, int) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                t ->
                pid:((t, Core.Std.Pid.t) Fieldslib.Field.t ->
                     t -> Core.Std.Pid.t -> unit) ->
                cmdline:((t, string) Fieldslib.Field.t -> t -> string -> unit) ->
                cwd:((t, string option) Fieldslib.Field.t ->
                     t -> string option -> unit) ->
                environ:((t, string option) Fieldslib.Field.t ->
                         t -> string option -> unit) ->
                exe:((t, string option) Fieldslib.Field.t ->
                     t -> string option -> unit) ->
                root:((t, string option) Fieldslib.Field.t ->
                      t -> string option -> unit) ->
                limits:((t, Limits.t option) Fieldslib.Field.t ->
                        t -> Limits.t option -> unit) ->
                stat:((t, Stat.t) Fieldslib.Field.t -> t -> Stat.t -> unit) ->
                statm:((t, Statm.t) Fieldslib.Field.t -> t -> Statm.t -> unit) ->
                status:((t, Status.t) Fieldslib.Field.t ->
                        t -> Status.t -> unit) ->
                task_stats:((t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                            t -> Stat.t Core.Std.Pid.Map.t -> unit) ->
                top_command:((t, string) Fieldslib.Field.t ->
                             t -> string -> unit) ->
                fds:((t, Fd.t list option) Fieldslib.Field.t ->
                     t -> Fd.t list option -> unit) ->
                oom_adj:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                oom_score:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                unit
              val fold :
                t ->
                init:'acc__ ->
                pid:('acc__ ->
                     (t, Core.Std.Pid.t) Fieldslib.Field.t ->
                     t -> Core.Std.Pid.t -> 'acc__) ->
                cmdline:('acc__ ->
                         (t, string) Fieldslib.Field.t ->
                         t -> string -> 'acc__) ->
                cwd:('acc__ ->
                     (t, string option) Fieldslib.Field.t ->
                     t -> string option -> 'acc__) ->
                environ:('acc__ ->
                         (t, string option) Fieldslib.Field.t ->
                         t -> string option -> 'acc__) ->
                exe:('acc__ ->
                     (t, string option) Fieldslib.Field.t ->
                     t -> string option -> 'acc__) ->
                root:('acc__ ->
                      (t, string option) Fieldslib.Field.t ->
                      t -> string option -> 'acc__) ->
                limits:('acc__ ->
                        (t, Limits.t option) Fieldslib.Field.t ->
                        t -> Limits.t option -> 'acc__) ->
                stat:('acc__ ->
                      (t, Stat.t) Fieldslib.Field.t -> t -> Stat.t -> 'acc__) ->
                statm:('acc__ ->
                       (t, Statm.t) Fieldslib.Field.t ->
                       t -> Statm.t -> 'acc__) ->
                status:('acc__ ->
                        (t, Status.t) Fieldslib.Field.t ->
                        t -> Status.t -> 'acc__) ->
                task_stats:('acc__ ->
                            (t, Stat.t Core.Std.Pid.Map.t) Fieldslib.Field.t ->
                            t -> Stat.t Core.Std.Pid.Map.t -> 'acc__) ->
                top_command:('acc__ ->
                             (t, string) Fieldslib.Field.t ->
                             t -> string -> 'acc__) ->
                fds:('acc__ ->
                     (t, Fd.t list option) Fieldslib.Field.t ->
                     t -> Fd.t list option -> 'acc__) ->
                oom_adj:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                oom_score:('acc__ ->
                           (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Meminfo :
    sig
      type t =
        Procfs.Meminfo.t = {
        mem_total : bigint;
        mem_free : bigint;
        buffers : bigint;
        cached : bigint;
        swap_cached : bigint;
        active : bigint;
        inactive : bigint;
        swap_total : bigint;
        swap_free : bigint;
        dirty : bigint;
        writeback : bigint;
        anon_pages : bigint;
        mapped : bigint;
        slab : bigint;
        page_tables : bigint;
        nfs_unstable : bigint;
        bounce : bigint;
        commit_limit : bigint;
        committed_as : bigint;
        vmalloc_total : bigint;
        vmalloc_used : bigint;
        vmalloc_chunk : bigint;
      }
      val vmalloc_chunk : t -> bigint
      val vmalloc_used : t -> bigint
      val vmalloc_total : t -> bigint
      val committed_as : t -> bigint
      val commit_limit : t -> bigint
      val bounce : t -> bigint
      val nfs_unstable : t -> bigint
      val page_tables : t -> bigint
      val slab : t -> bigint
      val mapped : t -> bigint
      val anon_pages : t -> bigint
      val writeback : t -> bigint
      val dirty : t -> bigint
      val swap_free : t -> bigint
      val swap_total : t -> bigint
      val inactive : t -> bigint
      val active : t -> bigint
      val swap_cached : t -> bigint
      val cached : t -> bigint
      val buffers : t -> bigint
      val mem_free : t -> bigint
      val mem_total : t -> bigint
      module Fields :
        sig
          val names : string list
          val vmalloc_chunk : (t, bigint) Fieldslib.Field.t
          val vmalloc_used : (t, bigint) Fieldslib.Field.t
          val vmalloc_total : (t, bigint) Fieldslib.Field.t
          val committed_as : (t, bigint) Fieldslib.Field.t
          val commit_limit : (t, bigint) Fieldslib.Field.t
          val bounce : (t, bigint) Fieldslib.Field.t
          val nfs_unstable : (t, bigint) Fieldslib.Field.t
          val page_tables : (t, bigint) Fieldslib.Field.t
          val slab : (t, bigint) Fieldslib.Field.t
          val mapped : (t, bigint) Fieldslib.Field.t
          val anon_pages : (t, bigint) Fieldslib.Field.t
          val writeback : (t, bigint) Fieldslib.Field.t
          val dirty : (t, bigint) Fieldslib.Field.t
          val swap_free : (t, bigint) Fieldslib.Field.t
          val swap_total : (t, bigint) Fieldslib.Field.t
          val inactive : (t, bigint) Fieldslib.Field.t
          val active : (t, bigint) Fieldslib.Field.t
          val swap_cached : (t, bigint) Fieldslib.Field.t
          val cached : (t, bigint) Fieldslib.Field.t
          val buffers : (t, bigint) Fieldslib.Field.t
          val mem_free : (t, bigint) Fieldslib.Field.t
          val mem_total : (t, bigint) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            mem_total:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            mem_free:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            buffers:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            cached:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            swap_cached:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            active:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            inactive:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            swap_total:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            swap_free:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            dirty:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            writeback:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            anon_pages:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            mapped:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            slab:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            page_tables:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            nfs_unstable:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            bounce:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            commit_limit:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            committed_as:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            vmalloc_total:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            vmalloc_used:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            vmalloc_chunk:('acc__ -> (t, bigint) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            mem_total:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
            mem_free:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            buffers:((t, bigint) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            cached:((t, bigint) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            swap_cached:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
            active:((t, bigint) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            inactive:((t, bigint) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            swap_total:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
            swap_free:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
            dirty:((t, bigint) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            writeback:((t, bigint) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> bigint) * 'compile_acc__) ->
            anon_pages:((t, bigint) Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> bigint) * 'compile_acc__) ->
            mapped:((t, bigint) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            slab:((t, bigint) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            page_tables:((t, bigint) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> bigint) * 'compile_acc__) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
            bounce:((t, bigint) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            commit_limit:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
            committed_as:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> bigint) * 'compile_acc__) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> bigint) * 'compile_acc__) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> bigint) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> t) * 'compile_acc__
          val create :
            mem_total:bigint ->
            mem_free:bigint ->
            buffers:bigint ->
            cached:bigint ->
            swap_cached:bigint ->
            active:bigint ->
            inactive:bigint ->
            swap_total:bigint ->
            swap_free:bigint ->
            dirty:bigint ->
            writeback:bigint ->
            anon_pages:bigint ->
            mapped:bigint ->
            slab:bigint ->
            page_tables:bigint ->
            nfs_unstable:bigint ->
            bounce:bigint ->
            commit_limit:bigint ->
            committed_as:bigint ->
            vmalloc_total:bigint ->
            vmalloc_used:bigint -> vmalloc_chunk:bigint -> t
          val map :
            mem_total:((t, bigint) Fieldslib.Field.t -> bigint) ->
            mem_free:((t, bigint) Fieldslib.Field.t -> bigint) ->
            buffers:((t, bigint) Fieldslib.Field.t -> bigint) ->
            cached:((t, bigint) Fieldslib.Field.t -> bigint) ->
            swap_cached:((t, bigint) Fieldslib.Field.t -> bigint) ->
            active:((t, bigint) Fieldslib.Field.t -> bigint) ->
            inactive:((t, bigint) Fieldslib.Field.t -> bigint) ->
            swap_total:((t, bigint) Fieldslib.Field.t -> bigint) ->
            swap_free:((t, bigint) Fieldslib.Field.t -> bigint) ->
            dirty:((t, bigint) Fieldslib.Field.t -> bigint) ->
            writeback:((t, bigint) Fieldslib.Field.t -> bigint) ->
            anon_pages:((t, bigint) Fieldslib.Field.t -> bigint) ->
            mapped:((t, bigint) Fieldslib.Field.t -> bigint) ->
            slab:((t, bigint) Fieldslib.Field.t -> bigint) ->
            page_tables:((t, bigint) Fieldslib.Field.t -> bigint) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t -> bigint) ->
            bounce:((t, bigint) Fieldslib.Field.t -> bigint) ->
            commit_limit:((t, bigint) Fieldslib.Field.t -> bigint) ->
            committed_as:((t, bigint) Fieldslib.Field.t -> bigint) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t -> bigint) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t -> bigint) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t -> bigint) -> t
          val iter :
            mem_total:((t, bigint) Fieldslib.Field.t -> unit) ->
            mem_free:((t, bigint) Fieldslib.Field.t -> unit) ->
            buffers:((t, bigint) Fieldslib.Field.t -> unit) ->
            cached:((t, bigint) Fieldslib.Field.t -> unit) ->
            swap_cached:((t, bigint) Fieldslib.Field.t -> unit) ->
            active:((t, bigint) Fieldslib.Field.t -> unit) ->
            inactive:((t, bigint) Fieldslib.Field.t -> unit) ->
            swap_total:((t, bigint) Fieldslib.Field.t -> unit) ->
            swap_free:((t, bigint) Fieldslib.Field.t -> unit) ->
            dirty:((t, bigint) Fieldslib.Field.t -> unit) ->
            writeback:((t, bigint) Fieldslib.Field.t -> unit) ->
            anon_pages:((t, bigint) Fieldslib.Field.t -> unit) ->
            mapped:((t, bigint) Fieldslib.Field.t -> unit) ->
            slab:((t, bigint) Fieldslib.Field.t -> unit) ->
            page_tables:((t, bigint) Fieldslib.Field.t -> unit) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t -> unit) ->
            bounce:((t, bigint) Fieldslib.Field.t -> unit) ->
            commit_limit:((t, bigint) Fieldslib.Field.t -> unit) ->
            committed_as:((t, bigint) Fieldslib.Field.t -> unit) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t -> unit) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t -> unit) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            mem_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            mem_free:((t, bigint) Fieldslib.Field.t -> bool) ->
            buffers:((t, bigint) Fieldslib.Field.t -> bool) ->
            cached:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_cached:((t, bigint) Fieldslib.Field.t -> bool) ->
            active:((t, bigint) Fieldslib.Field.t -> bool) ->
            inactive:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_free:((t, bigint) Fieldslib.Field.t -> bool) ->
            dirty:((t, bigint) Fieldslib.Field.t -> bool) ->
            writeback:((t, bigint) Fieldslib.Field.t -> bool) ->
            anon_pages:((t, bigint) Fieldslib.Field.t -> bool) ->
            mapped:((t, bigint) Fieldslib.Field.t -> bool) ->
            slab:((t, bigint) Fieldslib.Field.t -> bool) ->
            page_tables:((t, bigint) Fieldslib.Field.t -> bool) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t -> bool) ->
            bounce:((t, bigint) Fieldslib.Field.t -> bool) ->
            commit_limit:((t, bigint) Fieldslib.Field.t -> bool) ->
            committed_as:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t -> bool) -> bool
          val exists :
            mem_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            mem_free:((t, bigint) Fieldslib.Field.t -> bool) ->
            buffers:((t, bigint) Fieldslib.Field.t -> bool) ->
            cached:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_cached:((t, bigint) Fieldslib.Field.t -> bool) ->
            active:((t, bigint) Fieldslib.Field.t -> bool) ->
            inactive:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            swap_free:((t, bigint) Fieldslib.Field.t -> bool) ->
            dirty:((t, bigint) Fieldslib.Field.t -> bool) ->
            writeback:((t, bigint) Fieldslib.Field.t -> bool) ->
            anon_pages:((t, bigint) Fieldslib.Field.t -> bool) ->
            mapped:((t, bigint) Fieldslib.Field.t -> bool) ->
            slab:((t, bigint) Fieldslib.Field.t -> bool) ->
            page_tables:((t, bigint) Fieldslib.Field.t -> bool) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t -> bool) ->
            bounce:((t, bigint) Fieldslib.Field.t -> bool) ->
            commit_limit:((t, bigint) Fieldslib.Field.t -> bool) ->
            committed_as:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t -> bool) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            mem_total:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            mem_free:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            buffers:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            cached:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            swap_cached:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            active:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            inactive:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            swap_total:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            swap_free:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            dirty:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            writeback:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            anon_pages:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            mapped:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            slab:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            page_tables:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            nfs_unstable:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            bounce:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            commit_limit:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            committed_as:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            vmalloc_total:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            vmalloc_used:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            vmalloc_chunk:((t, bigint) Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                t ->
                mem_total:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                mem_free:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                buffers:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                cached:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                swap_cached:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                active:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                inactive:((t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> unit) ->
                swap_total:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                swap_free:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                dirty:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                writeback:((t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> unit) ->
                anon_pages:((t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> unit) ->
                mapped:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                slab:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                page_tables:((t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> unit) ->
                nfs_unstable:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                bounce:((t, bigint) Fieldslib.Field.t -> t -> bigint -> unit) ->
                commit_limit:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                committed_as:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                vmalloc_total:((t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> unit) ->
                vmalloc_used:((t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> unit) ->
                vmalloc_chunk:((t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> unit) ->
                unit
              val fold :
                t ->
                init:'acc__ ->
                mem_total:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                mem_free:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                buffers:('acc__ ->
                         (t, bigint) Fieldslib.Field.t ->
                         t -> bigint -> 'acc__) ->
                cached:('acc__ ->
                        (t, bigint) Fieldslib.Field.t ->
                        t -> bigint -> 'acc__) ->
                swap_cached:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                active:('acc__ ->
                        (t, bigint) Fieldslib.Field.t ->
                        t -> bigint -> 'acc__) ->
                inactive:('acc__ ->
                          (t, bigint) Fieldslib.Field.t ->
                          t -> bigint -> 'acc__) ->
                swap_total:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                swap_free:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                dirty:('acc__ ->
                       (t, bigint) Fieldslib.Field.t -> t -> bigint -> 'acc__) ->
                writeback:('acc__ ->
                           (t, bigint) Fieldslib.Field.t ->
                           t -> bigint -> 'acc__) ->
                anon_pages:('acc__ ->
                            (t, bigint) Fieldslib.Field.t ->
                            t -> bigint -> 'acc__) ->
                mapped:('acc__ ->
                        (t, bigint) Fieldslib.Field.t ->
                        t -> bigint -> 'acc__) ->
                slab:('acc__ ->
                      (t, bigint) Fieldslib.Field.t -> t -> bigint -> 'acc__) ->
                page_tables:('acc__ ->
                             (t, bigint) Fieldslib.Field.t ->
                             t -> bigint -> 'acc__) ->
                nfs_unstable:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                bounce:('acc__ ->
                        (t, bigint) Fieldslib.Field.t ->
                        t -> bigint -> 'acc__) ->
                commit_limit:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                committed_as:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                vmalloc_total:('acc__ ->
                               (t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> 'acc__) ->
                vmalloc_used:('acc__ ->
                              (t, bigint) Fieldslib.Field.t ->
                              t -> bigint -> 'acc__) ->
                vmalloc_chunk:('acc__ ->
                               (t, bigint) Fieldslib.Field.t ->
                               t -> bigint -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  module Kstat :
    sig
      type index_t = Procfs.Kstat.index_t = All | Number of int
      type cpu_t =
        Procfs.Kstat.cpu_t = {
        user : bigint;
        nice : bigint;
        sys : bigint;
        idle : bigint;
        iowait : bigint option;
        irq : bigint option;
        softirq : bigint option;
        steal : bigint option;
        guest : bigint option;
      }
      val guest : cpu_t -> bigint option
      val steal : cpu_t -> bigint option
      val softirq : cpu_t -> bigint option
      val irq : cpu_t -> bigint option
      val iowait : cpu_t -> bigint option
      val idle : cpu_t -> bigint
      val sys : cpu_t -> bigint
      val nice : cpu_t -> bigint
      val user : cpu_t -> bigint
      module Fields_of_cpu_t :
        sig
          val names : string list
          val guest : (cpu_t, bigint option) Fieldslib.Field.t
          val steal : (cpu_t, bigint option) Fieldslib.Field.t
          val softirq : (cpu_t, bigint option) Fieldslib.Field.t
          val irq : (cpu_t, bigint option) Fieldslib.Field.t
          val iowait : (cpu_t, bigint option) Fieldslib.Field.t
          val idle : (cpu_t, bigint) Fieldslib.Field.t
          val sys : (cpu_t, bigint) Fieldslib.Field.t
          val nice : (cpu_t, bigint) Fieldslib.Field.t
          val user : (cpu_t, bigint) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            user:('acc__ -> (cpu_t, bigint) Fieldslib.Field.t -> 'acc__) ->
            nice:('acc__ -> (cpu_t, bigint) Fieldslib.Field.t -> 'acc__) ->
            sys:('acc__ -> (cpu_t, bigint) Fieldslib.Field.t -> 'acc__) ->
            idle:('acc__ -> (cpu_t, bigint) Fieldslib.Field.t -> 'acc__) ->
            iowait:('acc__ ->
                    (cpu_t, bigint option) Fieldslib.Field.t -> 'acc__) ->
            irq:('acc__ -> (cpu_t, bigint option) Fieldslib.Field.t -> 'acc__) ->
            softirq:('acc__ ->
                     (cpu_t, bigint option) Fieldslib.Field.t -> 'acc__) ->
            steal:('acc__ ->
                   (cpu_t, bigint option) Fieldslib.Field.t -> 'acc__) ->
            guest:('acc__ ->
                   (cpu_t, bigint option) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            user:((cpu_t, bigint) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> bigint) * 'compile_acc__) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> bigint option) * 'compile_acc__) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> bigint option) * 'compile_acc__) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> bigint option) * 'compile_acc__) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> bigint option) * 'compile_acc__) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> bigint option) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> cpu_t) * 'compile_acc__
          val create :
            user:bigint ->
            nice:bigint ->
            sys:bigint ->
            idle:bigint ->
            iowait:bigint option ->
            irq:bigint option ->
            softirq:bigint option ->
            steal:bigint option -> guest:bigint option -> cpu_t
          val map :
            user:((cpu_t, bigint) Fieldslib.Field.t -> bigint) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t -> bigint) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t -> bigint) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t -> bigint) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t -> bigint option) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t -> bigint option) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t ->
                     bigint option) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t -> bigint option) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t -> bigint option) ->
            cpu_t
          val iter :
            user:((cpu_t, bigint) Fieldslib.Field.t -> unit) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t -> unit) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t -> unit) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t -> unit) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t -> unit) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t -> unit) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t -> unit) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t -> unit) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            user:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t -> bool) -> bool
          val exists :
            user:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t -> bool) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t -> bool) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            user:((cpu_t, bigint) Fieldslib.Field.t -> 'elem__) ->
            nice:((cpu_t, bigint) Fieldslib.Field.t -> 'elem__) ->
            sys:((cpu_t, bigint) Fieldslib.Field.t -> 'elem__) ->
            idle:((cpu_t, bigint) Fieldslib.Field.t -> 'elem__) ->
            iowait:((cpu_t, bigint option) Fieldslib.Field.t -> 'elem__) ->
            irq:((cpu_t, bigint option) Fieldslib.Field.t -> 'elem__) ->
            softirq:((cpu_t, bigint option) Fieldslib.Field.t -> 'elem__) ->
            steal:((cpu_t, bigint option) Fieldslib.Field.t -> 'elem__) ->
            guest:((cpu_t, bigint option) Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], cpu_t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                cpu_t ->
                user:((cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> unit) ->
                nice:((cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> unit) ->
                sys:((cpu_t, bigint) Fieldslib.Field.t ->
                     cpu_t -> bigint -> unit) ->
                idle:((cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> unit) ->
                iowait:((cpu_t, bigint option) Fieldslib.Field.t ->
                        cpu_t -> bigint option -> unit) ->
                irq:((cpu_t, bigint option) Fieldslib.Field.t ->
                     cpu_t -> bigint option -> unit) ->
                softirq:((cpu_t, bigint option) Fieldslib.Field.t ->
                         cpu_t -> bigint option -> unit) ->
                steal:((cpu_t, bigint option) Fieldslib.Field.t ->
                       cpu_t -> bigint option -> unit) ->
                guest:((cpu_t, bigint option) Fieldslib.Field.t ->
                       cpu_t -> bigint option -> unit) ->
                unit
              val fold :
                cpu_t ->
                init:'acc__ ->
                user:('acc__ ->
                      (cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> 'acc__) ->
                nice:('acc__ ->
                      (cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> 'acc__) ->
                sys:('acc__ ->
                     (cpu_t, bigint) Fieldslib.Field.t ->
                     cpu_t -> bigint -> 'acc__) ->
                idle:('acc__ ->
                      (cpu_t, bigint) Fieldslib.Field.t ->
                      cpu_t -> bigint -> 'acc__) ->
                iowait:('acc__ ->
                        (cpu_t, bigint option) Fieldslib.Field.t ->
                        cpu_t -> bigint option -> 'acc__) ->
                irq:('acc__ ->
                     (cpu_t, bigint option) Fieldslib.Field.t ->
                     cpu_t -> bigint option -> 'acc__) ->
                softirq:('acc__ ->
                         (cpu_t, bigint option) Fieldslib.Field.t ->
                         cpu_t -> bigint option -> 'acc__) ->
                steal:('acc__ ->
                       (cpu_t, bigint option) Fieldslib.Field.t ->
                       cpu_t -> bigint option -> 'acc__) ->
                guest:('acc__ ->
                       (cpu_t, bigint option) Fieldslib.Field.t ->
                       cpu_t -> bigint option -> 'acc__) ->
                'acc__
            end
        end
      type t = index_t * cpu_t
      val load_exn : unit -> t list
      val index_t_of_sexp : Sexplib.Sexp.t -> index_t
      val sexp_of_index_t : index_t -> Sexplib.Sexp.t
      val cpu_t_of_sexp : Sexplib.Sexp.t -> cpu_t
      val sexp_of_cpu_t : cpu_t -> Sexplib.Sexp.t
    end
  module Loadavg :
    sig
      type t =
        Procfs.Loadavg.t = {
        one : float;
        ten : float;
        fifteen : float;
      }
      val fifteen : t -> float
      val ten : t -> float
      val one : t -> float
      module Fields :
        sig
          val names : string list
          val fifteen : (t, float) Fieldslib.Field.t
          val ten : (t, float) Fieldslib.Field.t
          val one : (t, float) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            one:('acc__ -> (t, float) Fieldslib.Field.t -> 'acc__) ->
            ten:('acc__ -> (t, float) Fieldslib.Field.t -> 'acc__) ->
            fifteen:('acc__ -> (t, float) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            one:((t, float) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
            ten:((t, float) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
            fifteen:((t, float) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> t) * 'compile_acc__
          val create : one:float -> ten:float -> fifteen:float -> t
          val map :
            one:((t, float) Fieldslib.Field.t -> float) ->
            ten:((t, float) Fieldslib.Field.t -> float) ->
            fifteen:((t, float) Fieldslib.Field.t -> float) -> t
          val iter :
            one:((t, float) Fieldslib.Field.t -> unit) ->
            ten:((t, float) Fieldslib.Field.t -> unit) ->
            fifteen:((t, float) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            one:((t, float) Fieldslib.Field.t -> bool) ->
            ten:((t, float) Fieldslib.Field.t -> bool) ->
            fifteen:((t, float) Fieldslib.Field.t -> bool) -> bool
          val exists :
            one:((t, float) Fieldslib.Field.t -> bool) ->
            ten:((t, float) Fieldslib.Field.t -> bool) ->
            fifteen:((t, float) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            one:((t, float) Fieldslib.Field.t -> 'elem__) ->
            ten:((t, float) Fieldslib.Field.t -> 'elem__) ->
            fifteen:((t, float) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                t ->
                one:((t, float) Fieldslib.Field.t -> t -> float -> unit) ->
                ten:((t, float) Fieldslib.Field.t -> t -> float -> unit) ->
                fifteen:((t, float) Fieldslib.Field.t -> t -> float -> unit) ->
                unit
              val fold :
                t ->
                init:'acc__ ->
                one:('acc__ ->
                     (t, float) Fieldslib.Field.t -> t -> float -> 'acc__) ->
                ten:('acc__ ->
                     (t, float) Fieldslib.Field.t -> t -> float -> 'acc__) ->
                fifteen:('acc__ ->
                         (t, float) Fieldslib.Field.t -> t -> float -> 'acc__) ->
                'acc__
            end
        end
    end
  val get_all_procs : unit -> Process.t list
  val with_pid_exn : Core.Std.Pid.t -> Process.t
  val with_pid : Core.Std.Pid.t -> Process.t option
  val with_uid : int -> Process.t list
  val pgrep : (Process.t -> bool) -> Process.t list
  val pkill :
    signal:Core.Std.Signal.t ->
    (Process.t -> bool) ->
    (Core.Std.Pid.t * (unit, Core.Std.Unix.error) Core.Std.Result.t) list
  val with_username_exn : string -> Process.t list
  val with_username : string -> Process.t list option
  val jiffies_per_second_exn : unit -> float
  val jiffies_per_second : unit -> float option
  val meminfo_exn : unit -> Meminfo.t
  val meminfo : unit -> Meminfo.t option
  val loadavg_exn : unit -> Loadavg.t
  val loadavg : unit -> Loadavg.t option
  module Net :
    sig
      module Dev :
        sig
          type t =
            Procfs.Net.Dev.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 : t -> bool
          val tx_carrier : t -> int
          val tx_colls : t -> int
          val tx_fifo : t -> int
          val tx_drop : t -> int
          val tx_errs : t -> int
          val tx_packets : t -> int
          val tx_bytes : t -> int
          val rx_multicast : t -> bool
          val rx_compressed : t -> bool
          val rx_frame : t -> int
          val rx_fifo : t -> int
          val rx_drop : t -> int
          val rx_errs : t -> int
          val rx_packets : t -> int
          val rx_bytes : t -> int
          val iface : t -> string
          module Fields :
            sig
              val names : string list
              val tx_compressed : (t, bool) Fieldslib.Field.t
              val tx_carrier : (t, int) Fieldslib.Field.t
              val tx_colls : (t, int) Fieldslib.Field.t
              val tx_fifo : (t, int) Fieldslib.Field.t
              val tx_drop : (t, int) Fieldslib.Field.t
              val tx_errs : (t, int) Fieldslib.Field.t
              val tx_packets : (t, int) Fieldslib.Field.t
              val tx_bytes : (t, int) Fieldslib.Field.t
              val rx_multicast : (t, bool) Fieldslib.Field.t
              val rx_compressed : (t, bool) Fieldslib.Field.t
              val rx_frame : (t, int) Fieldslib.Field.t
              val rx_fifo : (t, int) Fieldslib.Field.t
              val rx_drop : (t, int) Fieldslib.Field.t
              val rx_errs : (t, int) Fieldslib.Field.t
              val rx_packets : (t, int) Fieldslib.Field.t
              val rx_bytes : (t, int) Fieldslib.Field.t
              val iface : (t, string) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                iface:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
                rx_bytes:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_packets:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_errs:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_drop:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_fifo:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_frame:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_compressed:('acc__ ->
                               (t, bool) Fieldslib.Field.t -> 'acc__) ->
                rx_multicast:('acc__ -> (t, bool) Fieldslib.Field.t -> 'acc__) ->
                tx_bytes:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_packets:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_errs:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_drop:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_fifo:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_colls:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_carrier:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tx_compressed:('acc__ ->
                               (t, bool) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                iface:((t, string) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> string) * 'compile_acc__) ->
                rx_bytes:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                rx_packets:((t, int) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> int) * 'compile_acc__) ->
                rx_errs:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                rx_drop:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                rx_fifo:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                rx_frame:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                rx_compressed:((t, bool) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> bool) * 'compile_acc__) ->
                rx_multicast:((t, bool) Fieldslib.Field.t ->
                              'compile_acc__ ->
                              ('input__ -> bool) * 'compile_acc__) ->
                tx_bytes:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                tx_packets:((t, int) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> int) * 'compile_acc__) ->
                tx_errs:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tx_drop:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tx_fifo:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tx_colls:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                tx_carrier:((t, int) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> int) * 'compile_acc__) ->
                tx_compressed:((t, bool) Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> bool) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> 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 -> t
              val map :
                iface:((t, string) Fieldslib.Field.t -> string) ->
                rx_bytes:((t, int) Fieldslib.Field.t -> int) ->
                rx_packets:((t, int) Fieldslib.Field.t -> int) ->
                rx_errs:((t, int) Fieldslib.Field.t -> int) ->
                rx_drop:((t, int) Fieldslib.Field.t -> int) ->
                rx_fifo:((t, int) Fieldslib.Field.t -> int) ->
                rx_frame:((t, int) Fieldslib.Field.t -> int) ->
                rx_compressed:((t, bool) Fieldslib.Field.t -> bool) ->
                rx_multicast:((t, bool) Fieldslib.Field.t -> bool) ->
                tx_bytes:((t, int) Fieldslib.Field.t -> int) ->
                tx_packets:((t, int) Fieldslib.Field.t -> int) ->
                tx_errs:((t, int) Fieldslib.Field.t -> int) ->
                tx_drop:((t, int) Fieldslib.Field.t -> int) ->
                tx_fifo:((t, int) Fieldslib.Field.t -> int) ->
                tx_colls:((t, int) Fieldslib.Field.t -> int) ->
                tx_carrier:((t, int) Fieldslib.Field.t -> int) ->
                tx_compressed:((t, bool) Fieldslib.Field.t -> bool) -> t
              val iter :
                iface:((t, string) Fieldslib.Field.t -> unit) ->
                rx_bytes:((t, int) Fieldslib.Field.t -> unit) ->
                rx_packets:((t, int) Fieldslib.Field.t -> unit) ->
                rx_errs:((t, int) Fieldslib.Field.t -> unit) ->
                rx_drop:((t, int) Fieldslib.Field.t -> unit) ->
                rx_fifo:((t, int) Fieldslib.Field.t -> unit) ->
                rx_frame:((t, int) Fieldslib.Field.t -> unit) ->
                rx_compressed:((t, bool) Fieldslib.Field.t -> unit) ->
                rx_multicast:((t, bool) Fieldslib.Field.t -> unit) ->
                tx_bytes:((t, int) Fieldslib.Field.t -> unit) ->
                tx_packets:((t, int) Fieldslib.Field.t -> unit) ->
                tx_errs:((t, int) Fieldslib.Field.t -> unit) ->
                tx_drop:((t, int) Fieldslib.Field.t -> unit) ->
                tx_fifo:((t, int) Fieldslib.Field.t -> unit) ->
                tx_colls:((t, int) Fieldslib.Field.t -> unit) ->
                tx_carrier:((t, int) Fieldslib.Field.t -> unit) ->
                tx_compressed:((t, bool) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                iface:((t, string) Fieldslib.Field.t -> bool) ->
                rx_bytes:((t, int) Fieldslib.Field.t -> bool) ->
                rx_packets:((t, int) Fieldslib.Field.t -> bool) ->
                rx_errs:((t, int) Fieldslib.Field.t -> bool) ->
                rx_drop:((t, int) Fieldslib.Field.t -> bool) ->
                rx_fifo:((t, int) Fieldslib.Field.t -> bool) ->
                rx_frame:((t, int) Fieldslib.Field.t -> bool) ->
                rx_compressed:((t, bool) Fieldslib.Field.t -> bool) ->
                rx_multicast:((t, bool) Fieldslib.Field.t -> bool) ->
                tx_bytes:((t, int) Fieldslib.Field.t -> bool) ->
                tx_packets:((t, int) Fieldslib.Field.t -> bool) ->
                tx_errs:((t, int) Fieldslib.Field.t -> bool) ->
                tx_drop:((t, int) Fieldslib.Field.t -> bool) ->
                tx_fifo:((t, int) Fieldslib.Field.t -> bool) ->
                tx_colls:((t, int) Fieldslib.Field.t -> bool) ->
                tx_carrier:((t, int) Fieldslib.Field.t -> bool) ->
                tx_compressed:((t, bool) Fieldslib.Field.t -> bool) -> bool
              val exists :
                iface:((t, string) Fieldslib.Field.t -> bool) ->
                rx_bytes:((t, int) Fieldslib.Field.t -> bool) ->
                rx_packets:((t, int) Fieldslib.Field.t -> bool) ->
                rx_errs:((t, int) Fieldslib.Field.t -> bool) ->
                rx_drop:((t, int) Fieldslib.Field.t -> bool) ->
                rx_fifo:((t, int) Fieldslib.Field.t -> bool) ->
                rx_frame:((t, int) Fieldslib.Field.t -> bool) ->
                rx_compressed:((t, bool) Fieldslib.Field.t -> bool) ->
                rx_multicast:((t, bool) Fieldslib.Field.t -> bool) ->
                tx_bytes:((t, int) Fieldslib.Field.t -> bool) ->
                tx_packets:((t, int) Fieldslib.Field.t -> bool) ->
                tx_errs:((t, int) Fieldslib.Field.t -> bool) ->
                tx_drop:((t, int) Fieldslib.Field.t -> bool) ->
                tx_fifo:((t, int) Fieldslib.Field.t -> bool) ->
                tx_colls:((t, int) Fieldslib.Field.t -> bool) ->
                tx_carrier:((t, int) Fieldslib.Field.t -> bool) ->
                tx_compressed:((t, bool) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                iface:((t, string) Fieldslib.Field.t -> 'elem__) ->
                rx_bytes:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_packets:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_errs:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_drop:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_fifo:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_frame:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_compressed:((t, bool) Fieldslib.Field.t -> 'elem__) ->
                rx_multicast:((t, bool) Fieldslib.Field.t -> 'elem__) ->
                tx_bytes:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_packets:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_errs:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_drop:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_fifo:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_colls:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_carrier:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tx_compressed:((t, bool) Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    iface:((t, string) Fieldslib.Field.t ->
                           t -> string -> unit) ->
                    rx_bytes:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_packets:((t, int) Fieldslib.Field.t ->
                                t -> int -> unit) ->
                    rx_errs:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_drop:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_fifo:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_frame:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_compressed:((t, bool) Fieldslib.Field.t ->
                                   t -> bool -> unit) ->
                    rx_multicast:((t, bool) Fieldslib.Field.t ->
                                  t -> bool -> unit) ->
                    tx_bytes:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tx_packets:((t, int) Fieldslib.Field.t ->
                                t -> int -> unit) ->
                    tx_errs:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tx_drop:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tx_fifo:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tx_colls:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tx_carrier:((t, int) Fieldslib.Field.t ->
                                t -> int -> unit) ->
                    tx_compressed:((t, bool) Fieldslib.Field.t ->
                                   t -> bool -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    iface:('acc__ ->
                           (t, string) Fieldslib.Field.t ->
                           t -> string -> 'acc__) ->
                    rx_bytes:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    rx_packets:('acc__ ->
                                (t, int) Fieldslib.Field.t ->
                                t -> int -> 'acc__) ->
                    rx_errs:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    rx_drop:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    rx_fifo:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    rx_frame:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    rx_compressed:('acc__ ->
                                   (t, bool) Fieldslib.Field.t ->
                                   t -> bool -> 'acc__) ->
                    rx_multicast:('acc__ ->
                                  (t, bool) Fieldslib.Field.t ->
                                  t -> bool -> 'acc__) ->
                    tx_bytes:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    tx_packets:('acc__ ->
                                (t, int) Fieldslib.Field.t ->
                                t -> int -> 'acc__) ->
                    tx_errs:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tx_drop:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tx_fifo:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tx_colls:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    tx_carrier:('acc__ ->
                                (t, int) Fieldslib.Field.t ->
                                t -> int -> 'acc__) ->
                    tx_compressed:('acc__ ->
                                   (t, bool) Fieldslib.Field.t ->
                                   t -> bool -> 'acc__) ->
                    'acc__
                end
            end
          val interfaces : unit -> string list
          val of_string : string -> t option
        end
      module Route :
        sig
          type t =
            Procfs.Net.Route.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 : t -> int
          val window : t -> int
          val mtu : t -> int
          val mask : t -> Core.Std.Unix.Inet_addr.t
          val metric : t -> int
          val use : t -> int
          val refcnt : t -> int
          val flags : t -> int
          val gateway : t -> Core.Std.Unix.Inet_addr.t
          val destination : t -> Core.Std.Unix.Inet_addr.t
          val iface : t -> string
          module Fields :
            sig
              val names : string list
              val irtt : (t, int) Fieldslib.Field.t
              val window : (t, int) Fieldslib.Field.t
              val mtu : (t, int) Fieldslib.Field.t
              val mask : (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
              val metric : (t, int) Fieldslib.Field.t
              val use : (t, int) Fieldslib.Field.t
              val refcnt : (t, int) Fieldslib.Field.t
              val flags : (t, int) Fieldslib.Field.t
              val gateway : (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
              val destination :
                (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
              val iface : (t, string) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                iface:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
                destination:('acc__ ->
                             (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             'acc__) ->
                gateway:('acc__ ->
                         (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         'acc__) ->
                flags:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                refcnt:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                use:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                metric:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                mask:('acc__ ->
                      (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      'acc__) ->
                mtu:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                window:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                irtt:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                iface:((t, string) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> string) * 'compile_acc__) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> Core.Std.Unix.Inet_addr.t) *
                             'compile_acc__) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> Core.Std.Unix.Inet_addr.t) *
                         'compile_acc__) ->
                flags:((t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                refcnt:((t, int) Fieldslib.Field.t ->
                        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                use:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                metric:((t, int) Fieldslib.Field.t ->
                        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Core.Std.Unix.Inet_addr.t) *
                      'compile_acc__) ->
                mtu:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                window:((t, int) Fieldslib.Field.t ->
                        'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                irtt:((t, int) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> 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 -> t
              val map :
                iface:((t, string) Fieldslib.Field.t -> string) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             Core.Std.Unix.Inet_addr.t) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         Core.Std.Unix.Inet_addr.t) ->
                flags:((t, int) Fieldslib.Field.t -> int) ->
                refcnt:((t, int) Fieldslib.Field.t -> int) ->
                use:((t, int) Fieldslib.Field.t -> int) ->
                metric:((t, int) Fieldslib.Field.t -> int) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      Core.Std.Unix.Inet_addr.t) ->
                mtu:((t, int) Fieldslib.Field.t -> int) ->
                window:((t, int) Fieldslib.Field.t -> int) ->
                irtt:((t, int) Fieldslib.Field.t -> int) -> t
              val iter :
                iface:((t, string) Fieldslib.Field.t -> unit) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             unit) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         unit) ->
                flags:((t, int) Fieldslib.Field.t -> unit) ->
                refcnt:((t, int) Fieldslib.Field.t -> unit) ->
                use:((t, int) Fieldslib.Field.t -> unit) ->
                metric:((t, int) Fieldslib.Field.t -> unit) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      unit) ->
                mtu:((t, int) Fieldslib.Field.t -> unit) ->
                window:((t, int) Fieldslib.Field.t -> unit) ->
                irtt:((t, int) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                iface:((t, string) Fieldslib.Field.t -> bool) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             bool) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         bool) ->
                flags:((t, int) Fieldslib.Field.t -> bool) ->
                refcnt:((t, int) Fieldslib.Field.t -> bool) ->
                use:((t, int) Fieldslib.Field.t -> bool) ->
                metric:((t, int) Fieldslib.Field.t -> bool) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      bool) ->
                mtu:((t, int) Fieldslib.Field.t -> bool) ->
                window:((t, int) Fieldslib.Field.t -> bool) ->
                irtt:((t, int) Fieldslib.Field.t -> bool) -> bool
              val exists :
                iface:((t, string) Fieldslib.Field.t -> bool) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             bool) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         bool) ->
                flags:((t, int) Fieldslib.Field.t -> bool) ->
                refcnt:((t, int) Fieldslib.Field.t -> bool) ->
                use:((t, int) Fieldslib.Field.t -> bool) ->
                metric:((t, int) Fieldslib.Field.t -> bool) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      bool) ->
                mtu:((t, int) Fieldslib.Field.t -> bool) ->
                window:((t, int) Fieldslib.Field.t -> bool) ->
                irtt:((t, int) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                iface:((t, string) Fieldslib.Field.t -> 'elem__) ->
                destination:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             'elem__) ->
                gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                         'elem__) ->
                flags:((t, int) Fieldslib.Field.t -> 'elem__) ->
                refcnt:((t, int) Fieldslib.Field.t -> 'elem__) ->
                use:((t, int) Fieldslib.Field.t -> 'elem__) ->
                metric:((t, int) Fieldslib.Field.t -> 'elem__) ->
                mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                      'elem__) ->
                mtu:((t, int) Fieldslib.Field.t -> 'elem__) ->
                window:((t, int) Fieldslib.Field.t -> 'elem__) ->
                irtt:((t, int) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    iface:((t, string) Fieldslib.Field.t ->
                           t -> string -> unit) ->
                    destination:((t, Core.Std.Unix.Inet_addr.t)
                                 Fieldslib.Field.t ->
                                 t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                    gateway:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                    flags:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    refcnt:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    use:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    metric:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    mask:((t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                          t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                    mtu:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    window:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    irtt:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    iface:('acc__ ->
                           (t, string) Fieldslib.Field.t ->
                           t -> string -> 'acc__) ->
                    destination:('acc__ ->
                                 (t, Core.Std.Unix.Inet_addr.t)
                                 Fieldslib.Field.t ->
                                 t -> Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                    gateway:('acc__ ->
                             (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                             t -> Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                    flags:('acc__ ->
                           (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    refcnt:('acc__ ->
                            (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    use:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    metric:('acc__ ->
                            (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    mask:('acc__ ->
                          (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t ->
                          t -> Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                    mtu:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    window:('acc__ ->
                            (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    irtt:('acc__ ->
                          (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    'acc__
                end
            end
          val default : unit -> Core.Std.Unix.Inet_addr.t
        end
      module Tcp_state :
        sig
          type t =
            Procfs.Net.Tcp_state.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 : t -> int
          val of_int : int -> t
        end
      module Tcp :
        sig
          type t =
            Procfs.Net.Tcp.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 : Tcp_state.t;
            tx_queue : int;
            rx_queue : int;
            tr : int;
            tm_when : int;
            retrnsmt : int;
            uid : int;
            timeout : int;
            inode : Process.Inode.t;
            rest : string;
          }
          val rest : t -> string
          val inode : t -> Process.Inode.t
          val timeout : t -> int
          val uid : t -> int
          val retrnsmt : t -> int
          val tm_when : t -> int
          val tr : t -> int
          val rx_queue : t -> int
          val tx_queue : t -> int
          val state : t -> Tcp_state.t
          val remote_port : t -> Unix.Inet_port.t option
          val remote_address : t -> Core.Std.Unix.Inet_addr.t
          val local_port : t -> Unix.Inet_port.t
          val local_address : t -> Core.Std.Unix.Inet_addr.t
          val sl : t -> int
          module Fields :
            sig
              val names : string list
              val rest : (t, string) Fieldslib.Field.t
              val inode : (t, Process.Inode.t) Fieldslib.Field.t
              val timeout : (t, int) Fieldslib.Field.t
              val uid : (t, int) Fieldslib.Field.t
              val retrnsmt : (t, int) Fieldslib.Field.t
              val tm_when : (t, int) Fieldslib.Field.t
              val tr : (t, int) Fieldslib.Field.t
              val rx_queue : (t, int) Fieldslib.Field.t
              val tx_queue : (t, int) Fieldslib.Field.t
              val state : (t, Tcp_state.t) Fieldslib.Field.t
              val remote_port :
                (t, Unix.Inet_port.t option) Fieldslib.Field.t
              val remote_address :
                (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
              val local_port :
                (t, Unix.Inet_port.t) Fieldslib.Field.t
              val local_address :
                (t, Core.Std.Unix.Inet_addr.t) Fieldslib.Field.t
              val sl : (t, int) Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                sl:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                local_address:('acc__ ->
                               (t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> 'acc__) ->
                local_port:('acc__ ->
                            (t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            'acc__) ->
                remote_address:('acc__ ->
                                (t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t -> 'acc__) ->
                remote_port:('acc__ ->
                             (t, Unix.Inet_port.t option)
                             Fieldslib.Field.t -> 'acc__) ->
                state:('acc__ -> (t, Tcp_state.t) Fieldslib.Field.t -> 'acc__) ->
                tx_queue:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                rx_queue:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tr:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                tm_when:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                retrnsmt:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                uid:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                timeout:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
                inode:('acc__ ->
                       (t, Process.Inode.t) Fieldslib.Field.t -> 'acc__) ->
                rest:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                sl:((t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Core.Std.Unix.Inet_addr.t) *
                               'compile_acc__) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Unix.Inet_port.t) *
                            'compile_acc__) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t ->
                                'compile_acc__ ->
                                ('input__ -> Core.Std.Unix.Inet_addr.t) *
                                'compile_acc__) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> Unix.Inet_port.t option) *
                             'compile_acc__) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Tcp_state.t) * 'compile_acc__) ->
                tx_queue:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                rx_queue:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                tr:((t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                tm_when:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                retrnsmt:((t, int) Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> int) * 'compile_acc__) ->
                uid:((t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                timeout:((t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Process.Inode.t) * 'compile_acc__) ->
                rest:((t, string) Fieldslib.Field.t ->
                      'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
                'compile_acc__ -> ('input__ -> 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:Tcp_state.t ->
                tx_queue:int ->
                rx_queue:int ->
                tr:int ->
                tm_when:int ->
                retrnsmt:int ->
                uid:int ->
                timeout:int -> inode:Process.Inode.t -> rest:string -> t
              val map :
                sl:((t, int) Fieldslib.Field.t -> int) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> Core.Std.Unix.Inet_addr.t) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            Unix.Inet_port.t) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t ->
                                Core.Std.Unix.Inet_addr.t) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t ->
                             Unix.Inet_port.t option) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t -> Tcp_state.t) ->
                tx_queue:((t, int) Fieldslib.Field.t -> int) ->
                rx_queue:((t, int) Fieldslib.Field.t -> int) ->
                tr:((t, int) Fieldslib.Field.t -> int) ->
                tm_when:((t, int) Fieldslib.Field.t -> int) ->
                retrnsmt:((t, int) Fieldslib.Field.t -> int) ->
                uid:((t, int) Fieldslib.Field.t -> int) ->
                timeout:((t, int) Fieldslib.Field.t -> int) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t ->
                       Process.Inode.t) ->
                rest:((t, string) Fieldslib.Field.t -> string) -> t
              val iter :
                sl:((t, int) Fieldslib.Field.t -> unit) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> unit) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            unit) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t -> unit) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t -> unit) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t -> unit) ->
                tx_queue:((t, int) Fieldslib.Field.t -> unit) ->
                rx_queue:((t, int) Fieldslib.Field.t -> unit) ->
                tr:((t, int) Fieldslib.Field.t -> unit) ->
                tm_when:((t, int) Fieldslib.Field.t -> unit) ->
                retrnsmt:((t, int) Fieldslib.Field.t -> unit) ->
                uid:((t, int) Fieldslib.Field.t -> unit) ->
                timeout:((t, int) Fieldslib.Field.t -> unit) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t -> unit) ->
                rest:((t, string) Fieldslib.Field.t -> unit) -> unit
              val for_all :
                sl:((t, int) Fieldslib.Field.t -> bool) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> bool) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            bool) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t -> bool) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t -> bool) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t -> bool) ->
                tx_queue:((t, int) Fieldslib.Field.t -> bool) ->
                rx_queue:((t, int) Fieldslib.Field.t -> bool) ->
                tr:((t, int) Fieldslib.Field.t -> bool) ->
                tm_when:((t, int) Fieldslib.Field.t -> bool) ->
                retrnsmt:((t, int) Fieldslib.Field.t -> bool) ->
                uid:((t, int) Fieldslib.Field.t -> bool) ->
                timeout:((t, int) Fieldslib.Field.t -> bool) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t -> bool) ->
                rest:((t, string) Fieldslib.Field.t -> bool) -> bool
              val exists :
                sl:((t, int) Fieldslib.Field.t -> bool) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> bool) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            bool) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t -> bool) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t -> bool) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t -> bool) ->
                tx_queue:((t, int) Fieldslib.Field.t -> bool) ->
                rx_queue:((t, int) Fieldslib.Field.t -> bool) ->
                tr:((t, int) Fieldslib.Field.t -> bool) ->
                tm_when:((t, int) Fieldslib.Field.t -> bool) ->
                retrnsmt:((t, int) Fieldslib.Field.t -> bool) ->
                uid:((t, int) Fieldslib.Field.t -> bool) ->
                timeout:((t, int) Fieldslib.Field.t -> bool) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t -> bool) ->
                rest:((t, string) Fieldslib.Field.t -> bool) -> bool
              val to_list :
                sl:((t, int) Fieldslib.Field.t -> 'elem__) ->
                local_address:((t, Core.Std.Unix.Inet_addr.t)
                               Fieldslib.Field.t -> 'elem__) ->
                local_port:((t, Unix.Inet_port.t) Fieldslib.Field.t ->
                            'elem__) ->
                remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                Fieldslib.Field.t -> 'elem__) ->
                remote_port:((t, Unix.Inet_port.t option)
                             Fieldslib.Field.t -> 'elem__) ->
                state:((t, Tcp_state.t) Fieldslib.Field.t -> 'elem__) ->
                tx_queue:((t, int) Fieldslib.Field.t -> 'elem__) ->
                rx_queue:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tr:((t, int) Fieldslib.Field.t -> 'elem__) ->
                tm_when:((t, int) Fieldslib.Field.t -> 'elem__) ->
                retrnsmt:((t, int) Fieldslib.Field.t -> 'elem__) ->
                uid:((t, int) Fieldslib.Field.t -> 'elem__) ->
                timeout:((t, int) Fieldslib.Field.t -> 'elem__) ->
                inode:((t, Process.Inode.t) Fieldslib.Field.t -> 'elem__) ->
                rest:((t, string) Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              val map_poly :
                ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
                'x0 list
              module Direct :
                sig
                  val iter :
                    t ->
                    sl:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    local_address:((t, Core.Std.Unix.Inet_addr.t)
                                   Fieldslib.Field.t ->
                                   t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                    local_port:((t, Unix.Inet_port.t)
                                Fieldslib.Field.t ->
                                t -> Unix.Inet_port.t -> unit) ->
                    remote_address:((t, Core.Std.Unix.Inet_addr.t)
                                    Fieldslib.Field.t ->
                                    t -> Core.Std.Unix.Inet_addr.t -> unit) ->
                    remote_port:((t, Unix.Inet_port.t option)
                                 Fieldslib.Field.t ->
                                 t ->
                                 Unix.Inet_port.t option -> unit) ->
                    state:((t, Tcp_state.t) Fieldslib.Field.t ->
                           t -> Tcp_state.t -> unit) ->
                    tx_queue:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    rx_queue:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tr:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    tm_when:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    retrnsmt:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    uid:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    timeout:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                    inode:((t, Process.Inode.t) Fieldslib.Field.t ->
                           t -> Process.Inode.t -> unit) ->
                    rest:((t, string) Fieldslib.Field.t ->
                          t -> string -> unit) ->
                    unit
                  val fold :
                    t ->
                    init:'acc__ ->
                    sl:('acc__ ->
                        (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    local_address:('acc__ ->
                                   (t, Core.Std.Unix.Inet_addr.t)
                                   Fieldslib.Field.t ->
                                   t -> Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                    local_port:('acc__ ->
                                (t, Unix.Inet_port.t)
                                Fieldslib.Field.t ->
                                t -> Unix.Inet_port.t -> 'acc__) ->
                    remote_address:('acc__ ->
                                    (t, Core.Std.Unix.Inet_addr.t)
                                    Fieldslib.Field.t ->
                                    t -> Core.Std.Unix.Inet_addr.t -> 'acc__) ->
                    remote_port:('acc__ ->
                                 (t, Unix.Inet_port.t option)
                                 Fieldslib.Field.t ->
                                 t ->
                                 Unix.Inet_port.t option -> 'acc__) ->
                    state:('acc__ ->
                           (t, Tcp_state.t) Fieldslib.Field.t ->
                           t -> Tcp_state.t -> 'acc__) ->
                    tx_queue:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    rx_queue:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    tr:('acc__ ->
                        (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    tm_when:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    retrnsmt:('acc__ ->
                              (t, int) Fieldslib.Field.t ->
                              t -> int -> 'acc__) ->
                    uid:('acc__ ->
                         (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    timeout:('acc__ ->
                             (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                    inode:('acc__ ->
                           (t, Process.Inode.t) Fieldslib.Field.t ->
                           t -> Process.Inode.t -> 'acc__) ->
                    rest:('acc__ ->
                          (t, string) Fieldslib.Field.t ->
                          t -> string -> 'acc__) ->
                    'acc__
                end
            end
          val of_line : string -> t option
          val of_line_exn : string -> t
          val load_exn : unit -> t list
        end
    end
  module Mount :
    sig
      type t =
        Procfs.Mount.t = {
        spec : string;
        file : string;
        vfstype : string;
        mntops : string list;
        freq : int;
        passno : int;
      }
      val passno : t -> int
      val freq : t -> int
      val mntops : t -> string list
      val vfstype : t -> string
      val file : t -> string
      val spec : t -> string
      module Fields :
        sig
          val names : string list
          val passno : (t, int) Fieldslib.Field.t
          val freq : (t, int) Fieldslib.Field.t
          val mntops : (t, string list) Fieldslib.Field.t
          val vfstype : (t, string) Fieldslib.Field.t
          val file : (t, string) Fieldslib.Field.t
          val spec : (t, string) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            spec:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            file:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            vfstype:('acc__ -> (t, string) Fieldslib.Field.t -> 'acc__) ->
            mntops:('acc__ -> (t, string list) Fieldslib.Field.t -> 'acc__) ->
            freq:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) ->
            passno:('acc__ -> (t, int) Fieldslib.Field.t -> 'acc__) -> 'acc__
          val make_creator :
            spec:((t, string) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            file:((t, string) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            vfstype:((t, string) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            mntops:((t, string list) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> string list) * 'compile_acc__) ->
            freq:((t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            passno:((t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            'compile_acc__ -> ('input__ -> t) * 'compile_acc__
          val create :
            spec:string ->
            file:string ->
            vfstype:string ->
            mntops:string list -> freq:int -> passno:int -> t
          val map :
            spec:((t, string) Fieldslib.Field.t -> string) ->
            file:((t, string) Fieldslib.Field.t -> string) ->
            vfstype:((t, string) Fieldslib.Field.t -> string) ->
            mntops:((t, string list) Fieldslib.Field.t -> string list) ->
            freq:((t, int) Fieldslib.Field.t -> int) ->
            passno:((t, int) Fieldslib.Field.t -> int) -> t
          val iter :
            spec:((t, string) Fieldslib.Field.t -> unit) ->
            file:((t, string) Fieldslib.Field.t -> unit) ->
            vfstype:((t, string) Fieldslib.Field.t -> unit) ->
            mntops:((t, string list) Fieldslib.Field.t -> unit) ->
            freq:((t, int) Fieldslib.Field.t -> unit) ->
            passno:((t, int) Fieldslib.Field.t -> unit) -> unit
          val for_all :
            spec:((t, string) Fieldslib.Field.t -> bool) ->
            file:((t, string) Fieldslib.Field.t -> bool) ->
            vfstype:((t, string) Fieldslib.Field.t -> bool) ->
            mntops:((t, string list) Fieldslib.Field.t -> bool) ->
            freq:((t, int) Fieldslib.Field.t -> bool) ->
            passno:((t, int) Fieldslib.Field.t -> bool) -> bool
          val exists :
            spec:((t, string) Fieldslib.Field.t -> bool) ->
            file:((t, string) Fieldslib.Field.t -> bool) ->
            vfstype:((t, string) Fieldslib.Field.t -> bool) ->
            mntops:((t, string list) Fieldslib.Field.t -> bool) ->
            freq:((t, int) Fieldslib.Field.t -> bool) ->
            passno:((t, int) Fieldslib.Field.t -> bool) -> bool
          val to_list :
            spec:((t, string) Fieldslib.Field.t -> 'elem__) ->
            file:((t, string) Fieldslib.Field.t -> 'elem__) ->
            vfstype:((t, string) Fieldslib.Field.t -> 'elem__) ->
            mntops:((t, string list) Fieldslib.Field.t -> 'elem__) ->
            freq:((t, int) Fieldslib.Field.t -> 'elem__) ->
            passno:((t, int) Fieldslib.Field.t -> 'elem__) -> 'elem__ list
          val map_poly :
            ([< `Read | `Set_and_create ], t, 'x0) Fieldslib.Field.user ->
            'x0 list
          module Direct :
            sig
              val iter :
                t ->
                spec:((t, string) Fieldslib.Field.t -> t -> string -> unit) ->
                file:((t, string) Fieldslib.Field.t -> t -> string -> unit) ->
                vfstype:((t, string) Fieldslib.Field.t -> t -> string -> unit) ->
                mntops:((t, string list) Fieldslib.Field.t ->
                        t -> string list -> unit) ->
                freq:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                passno:((t, int) Fieldslib.Field.t -> t -> int -> unit) ->
                unit
              val fold :
                t ->
                init:'acc__ ->
                spec:('acc__ ->
                      (t, string) Fieldslib.Field.t -> t -> string -> 'acc__) ->
                file:('acc__ ->
                      (t, string) Fieldslib.Field.t -> t -> string -> 'acc__) ->
                vfstype:('acc__ ->
                         (t, string) Fieldslib.Field.t ->
                         t -> string -> 'acc__) ->
                mntops:('acc__ ->
                        (t, string list) Fieldslib.Field.t ->
                        t -> string list -> 'acc__) ->
                freq:('acc__ ->
                      (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                passno:('acc__ ->
                        (t, int) Fieldslib.Field.t -> t -> int -> 'acc__) ->
                'acc__
            end
        end
    end
  val mounts : unit -> Mount.t list
  val mounts_of_fstab : unit -> Mount.t list
  val supported_filesystems : unit -> string list
  val uptime : unit -> Core.Std.Time.Span.t
  val process_age : Process.t -> Core.Std.Time.Span.t option
  val process_age' :
    jiffies_per_second:float -> Process.t -> Core.Std.Time.Span.t
  val bigint_of_sexp : Sexplib.Sexp.t -> bigint
  val sexp_of_bigint : bigint -> Sexplib.Sexp.t
end