sig
  module Inode :
    sig
      type t
      val of_string : string -> Procfs.Process.Inode.t
      val to_string : Procfs.Process.Inode.t -> string
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Inode.t
      val sexp_of_t : Procfs.Process.Inode.t -> Sexplib.Sexp.t
    end
  module Limits :
    sig
      module Rlimit :
        sig
          type value = [ `limited of Procfs.bigint | `unlimited ]
          type t = {
            soft : Procfs.Process.Limits.Rlimit.value;
            hard : Procfs.Process.Limits.Rlimit.value;
          }
          val hard :
            Procfs.Process.Limits.Rlimit.t ->
            Procfs.Process.Limits.Rlimit.value
          val soft :
            Procfs.Process.Limits.Rlimit.t ->
            Procfs.Process.Limits.Rlimit.value
          module Fields :
            sig
              val names : string list
              val hard :
                (Procfs.Process.Limits.Rlimit.t,
                 Procfs.Process.Limits.Rlimit.value)
                Fieldslib.Field.t
              val soft :
                (Procfs.Process.Limits.Rlimit.t,
                 Procfs.Process.Limits.Rlimit.value)
                Fieldslib.Field.t
              val fold :
                init:'acc__ ->
                soft:('acc__ ->
                      (Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> 'acc__) ->
                hard:('acc__ ->
                      (Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> 'acc__) ->
                'acc__
              val make_creator :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.Process.Limits.Rlimit.value) *
                      'compile_acc__) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.Process.Limits.Rlimit.value) *
                      'compile_acc__) ->
                'compile_acc__ ->
                ('input__ -> Procfs.Process.Limits.Rlimit.t) * 'compile_acc__
              val create :
                soft:Procfs.Process.Limits.Rlimit.value ->
                hard:Procfs.Process.Limits.Rlimit.value ->
                Procfs.Process.Limits.Rlimit.t
              val iter :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> unit) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> unit) ->
                unit
              val map :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.value) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.value) ->
                Procfs.Process.Limits.Rlimit.t
              val map_poly :
                (Procfs.Process.Limits.Rlimit.t, 'x0) Fieldslib.Field.user ->
                'x0 list
              val for_all :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> bool) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> bool) ->
                bool
              val exists :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> bool) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> bool) ->
                bool
              val to_list :
                soft:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> 'elem__) ->
                hard:((Procfs.Process.Limits.Rlimit.t,
                       Procfs.Process.Limits.Rlimit.value)
                      Fieldslib.Field.t -> 'elem__) ->
                'elem__ list
              module Direct :
                sig
                  val iter :
                    Procfs.Process.Limits.Rlimit.t ->
                    soft:((Procfs.Process.Limits.Rlimit.t,
                           Procfs.Process.Limits.Rlimit.value)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.Rlimit.t ->
                          Procfs.Process.Limits.Rlimit.value -> unit) ->
                    hard:((Procfs.Process.Limits.Rlimit.t,
                           Procfs.Process.Limits.Rlimit.value)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.Rlimit.t ->
                          Procfs.Process.Limits.Rlimit.value -> unit) ->
                    unit
                  val fold :
                    Procfs.Process.Limits.Rlimit.t ->
                    init:'acc__ ->
                    soft:('acc__ ->
                          (Procfs.Process.Limits.Rlimit.t,
                           Procfs.Process.Limits.Rlimit.value)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.Rlimit.t ->
                          Procfs.Process.Limits.Rlimit.value -> 'acc__) ->
                    hard:('acc__ ->
                          (Procfs.Process.Limits.Rlimit.t,
                           Procfs.Process.Limits.Rlimit.value)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.Rlimit.t ->
                          Procfs.Process.Limits.Rlimit.value -> 'acc__) ->
                    'acc__
                end
            end
          val value_of_sexp :
            Sexplib.Sexp.t -> Procfs.Process.Limits.Rlimit.value
          val value_of_sexp__ :
            Sexplib.Sexp.t -> Procfs.Process.Limits.Rlimit.value
          val sexp_of_value :
            Procfs.Process.Limits.Rlimit.value -> Sexplib.Sexp.t
          val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Limits.Rlimit.t
          val sexp_of_t : Procfs.Process.Limits.Rlimit.t -> Sexplib.Sexp.t
        end
      type t = {
        cpu_time : Procfs.Process.Limits.Rlimit.t;
        file_size : Procfs.Process.Limits.Rlimit.t;
        data_size : Procfs.Process.Limits.Rlimit.t;
        stack_size : Procfs.Process.Limits.Rlimit.t;
        core_file_size : Procfs.Process.Limits.Rlimit.t;
        resident_set : Procfs.Process.Limits.Rlimit.t;
        processes : Procfs.Process.Limits.Rlimit.t;
        open_files : Procfs.Process.Limits.Rlimit.t;
        locked_memory : Procfs.Process.Limits.Rlimit.t;
        address_space : Procfs.Process.Limits.Rlimit.t;
        file_locks : Procfs.Process.Limits.Rlimit.t;
        pending_signals : Procfs.Process.Limits.Rlimit.t;
        msgqueue_size : Procfs.Process.Limits.Rlimit.t;
        nice_priority : Procfs.Process.Limits.Rlimit.t;
        realtime_priority : Procfs.Process.Limits.Rlimit.t;
      }
      val realtime_priority :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val nice_priority :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val msgqueue_size :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val pending_signals :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val file_locks :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val address_space :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val locked_memory :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val open_files :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val processes :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val resident_set :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val core_file_size :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val stack_size :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val data_size :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val file_size :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      val cpu_time :
        Procfs.Process.Limits.t -> Procfs.Process.Limits.Rlimit.t
      module Fields :
        sig
          val names : string list
          val realtime_priority :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val nice_priority :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val msgqueue_size :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val pending_signals :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val file_locks :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val address_space :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val locked_memory :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val open_files :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val processes :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val resident_set :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val core_file_size :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val stack_size :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val data_size :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val file_size :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val cpu_time :
            (Procfs.Process.Limits.t, Procfs.Process.Limits.Rlimit.t)
            Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            cpu_time:('acc__ ->
                      (Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> 'acc__) ->
            file_size:('acc__ ->
                       (Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'acc__) ->
            data_size:('acc__ ->
                       (Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'acc__) ->
            stack_size:('acc__ ->
                        (Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'acc__) ->
            core_file_size:('acc__ ->
                            (Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t -> 'acc__) ->
            resident_set:('acc__ ->
                          (Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> 'acc__) ->
            processes:('acc__ ->
                       (Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'acc__) ->
            open_files:('acc__ ->
                        (Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'acc__) ->
            locked_memory:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'acc__) ->
            address_space:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'acc__) ->
            file_locks:('acc__ ->
                        (Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'acc__) ->
            pending_signals:('acc__ ->
                             (Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t -> 'acc__) ->
            msgqueue_size:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'acc__) ->
            nice_priority:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'acc__) ->
            realtime_priority:('acc__ ->
                               (Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                      'compile_acc__) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                       'compile_acc__) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                       'compile_acc__) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                        'compile_acc__) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            'compile_acc__ ->
                            ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                            'compile_acc__) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t ->
                          'compile_acc__ ->
                          ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                          'compile_acc__) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                       'compile_acc__) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                        'compile_acc__) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                           'compile_acc__) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                           'compile_acc__) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                        'compile_acc__) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t ->
                             'compile_acc__ ->
                             ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                             'compile_acc__) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                           'compile_acc__) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           'compile_acc__ ->
                           ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                           'compile_acc__) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               'compile_acc__ ->
                               ('input__ -> Procfs.Process.Limits.Rlimit.t) *
                               'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Process.Limits.t) * 'compile_acc__
          val create :
            cpu_time:Procfs.Process.Limits.Rlimit.t ->
            file_size:Procfs.Process.Limits.Rlimit.t ->
            data_size:Procfs.Process.Limits.Rlimit.t ->
            stack_size:Procfs.Process.Limits.Rlimit.t ->
            core_file_size:Procfs.Process.Limits.Rlimit.t ->
            resident_set:Procfs.Process.Limits.Rlimit.t ->
            processes:Procfs.Process.Limits.Rlimit.t ->
            open_files:Procfs.Process.Limits.Rlimit.t ->
            locked_memory:Procfs.Process.Limits.Rlimit.t ->
            address_space:Procfs.Process.Limits.Rlimit.t ->
            file_locks:Procfs.Process.Limits.Rlimit.t ->
            pending_signals:Procfs.Process.Limits.Rlimit.t ->
            msgqueue_size:Procfs.Process.Limits.Rlimit.t ->
            nice_priority:Procfs.Process.Limits.Rlimit.t ->
            realtime_priority:Procfs.Process.Limits.Rlimit.t ->
            Procfs.Process.Limits.t
          val iter :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> unit) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> unit) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> unit) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> unit) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t -> unit) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> unit) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> unit) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> unit) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> unit) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> unit) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> unit) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t -> unit) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> unit) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> unit) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t -> unit) ->
            unit
          val map :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.Rlimit.t) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.Rlimit.t) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.Rlimit.t) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> Procfs.Process.Limits.Rlimit.t) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t ->
                             Procfs.Process.Limits.Rlimit.t) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.Rlimit.t) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.Rlimit.t) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.Rlimit.t) ->
            Procfs.Process.Limits.t
          val map_poly :
            (Procfs.Process.Limits.t, 'x0) Fieldslib.Field.user -> 'x0 list
          val for_all :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> bool) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t -> bool) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> bool) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t -> bool) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t -> bool) ->
            bool
          val exists :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> bool) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t -> bool) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> bool) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> bool) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> bool) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t -> bool) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> bool) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t -> bool) ->
            bool
          val to_list :
            cpu_time:((Procfs.Process.Limits.t,
                       Procfs.Process.Limits.Rlimit.t)
                      Fieldslib.Field.t -> 'elem__) ->
            file_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'elem__) ->
            data_size:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'elem__) ->
            stack_size:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'elem__) ->
            core_file_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t -> 'elem__) ->
            resident_set:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t -> 'elem__) ->
            processes:((Procfs.Process.Limits.t,
                        Procfs.Process.Limits.Rlimit.t)
                       Fieldslib.Field.t -> 'elem__) ->
            open_files:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'elem__) ->
            locked_memory:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'elem__) ->
            address_space:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'elem__) ->
            file_locks:((Procfs.Process.Limits.t,
                         Procfs.Process.Limits.Rlimit.t)
                        Fieldslib.Field.t -> 'elem__) ->
            pending_signals:((Procfs.Process.Limits.t,
                              Procfs.Process.Limits.Rlimit.t)
                             Fieldslib.Field.t -> 'elem__) ->
            msgqueue_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'elem__) ->
            nice_priority:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t -> 'elem__) ->
            realtime_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          module Direct :
            sig
              val iter :
                Procfs.Process.Limits.t ->
                cpu_time:((Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.t ->
                          Procfs.Process.Limits.Rlimit.t -> unit) ->
                file_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> unit) ->
                data_size:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> unit) ->
                stack_size:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> unit) ->
                core_file_size:((Procfs.Process.Limits.t,
                                 Procfs.Process.Limits.Rlimit.t)
                                Fieldslib.Field.t ->
                                Procfs.Process.Limits.t ->
                                Procfs.Process.Limits.Rlimit.t -> unit) ->
                resident_set:((Procfs.Process.Limits.t,
                               Procfs.Process.Limits.Rlimit.t)
                              Fieldslib.Field.t ->
                              Procfs.Process.Limits.t ->
                              Procfs.Process.Limits.Rlimit.t -> unit) ->
                processes:((Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> unit) ->
                open_files:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> unit) ->
                locked_memory:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> unit) ->
                address_space:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> unit) ->
                file_locks:((Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> unit) ->
                pending_signals:((Procfs.Process.Limits.t,
                                  Procfs.Process.Limits.Rlimit.t)
                                 Fieldslib.Field.t ->
                                 Procfs.Process.Limits.t ->
                                 Procfs.Process.Limits.Rlimit.t -> unit) ->
                msgqueue_size:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> unit) ->
                nice_priority:((Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> unit) ->
                realtime_priority:((Procfs.Process.Limits.t,
                                    Procfs.Process.Limits.Rlimit.t)
                                   Fieldslib.Field.t ->
                                   Procfs.Process.Limits.t ->
                                   Procfs.Process.Limits.Rlimit.t -> unit) ->
                unit
              val fold :
                Procfs.Process.Limits.t ->
                init:'acc__ ->
                cpu_time:('acc__ ->
                          (Procfs.Process.Limits.t,
                           Procfs.Process.Limits.Rlimit.t)
                          Fieldslib.Field.t ->
                          Procfs.Process.Limits.t ->
                          Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                file_size:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                data_size:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                stack_size:('acc__ ->
                            (Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                core_file_size:('acc__ ->
                                (Procfs.Process.Limits.t,
                                 Procfs.Process.Limits.Rlimit.t)
                                Fieldslib.Field.t ->
                                Procfs.Process.Limits.t ->
                                Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                resident_set:('acc__ ->
                              (Procfs.Process.Limits.t,
                               Procfs.Process.Limits.Rlimit.t)
                              Fieldslib.Field.t ->
                              Procfs.Process.Limits.t ->
                              Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                processes:('acc__ ->
                           (Procfs.Process.Limits.t,
                            Procfs.Process.Limits.Rlimit.t)
                           Fieldslib.Field.t ->
                           Procfs.Process.Limits.t ->
                           Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                open_files:('acc__ ->
                            (Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                locked_memory:('acc__ ->
                               (Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                address_space:('acc__ ->
                               (Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                file_locks:('acc__ ->
                            (Procfs.Process.Limits.t,
                             Procfs.Process.Limits.Rlimit.t)
                            Fieldslib.Field.t ->
                            Procfs.Process.Limits.t ->
                            Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                pending_signals:('acc__ ->
                                 (Procfs.Process.Limits.t,
                                  Procfs.Process.Limits.Rlimit.t)
                                 Fieldslib.Field.t ->
                                 Procfs.Process.Limits.t ->
                                 Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                msgqueue_size:('acc__ ->
                               (Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                nice_priority:('acc__ ->
                               (Procfs.Process.Limits.t,
                                Procfs.Process.Limits.Rlimit.t)
                               Fieldslib.Field.t ->
                               Procfs.Process.Limits.t ->
                               Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                realtime_priority:('acc__ ->
                                   (Procfs.Process.Limits.t,
                                    Procfs.Process.Limits.Rlimit.t)
                                   Fieldslib.Field.t ->
                                   Procfs.Process.Limits.t ->
                                   Procfs.Process.Limits.Rlimit.t -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Limits.t
      val sexp_of_t : Procfs.Process.Limits.t -> Sexplib.Sexp.t
    end
  module Stat :
    sig
      type t = {
        comm : string;
        state : char;
        ppid : Core.Std.Pid.t option;
        pgrp : Core.Std.Pid.t;
        session : int;
        tty_nr : int;
        tpgid : int;
        flags : Procfs.bigint;
        minflt : Procfs.bigint;
        cminflt : Procfs.bigint;
        majflt : Procfs.bigint;
        cmajflt : Procfs.bigint;
        utime : Procfs.bigint;
        stime : Procfs.bigint;
        cutime : Procfs.bigint;
        cstime : Procfs.bigint;
        priority : Procfs.bigint;
        nice : Procfs.bigint;
        unused : Procfs.bigint;
        itrealvalue : Procfs.bigint;
        starttime : Procfs.bigint;
        vsize : Procfs.bigint;
        rss : Procfs.bigint;
        rlim : Procfs.bigint;
        startcode : Procfs.bigint;
        endcode : Procfs.bigint;
        startstack : Procfs.bigint;
        kstkesp : Procfs.bigint;
        kstkeip : Procfs.bigint;
        signal : Procfs.bigint;
        blocked : Procfs.bigint;
        sigignore : Procfs.bigint;
        sigcatch : Procfs.bigint;
        wchan : Procfs.bigint;
        nswap : Procfs.bigint;
        cnswap : Procfs.bigint;
        exit_signal : int;
        processor : int;
        rt_priority : Procfs.bigint;
        policy : Procfs.bigint;
      }
      val policy : Procfs.Process.Stat.t -> Procfs.bigint
      val rt_priority : Procfs.Process.Stat.t -> Procfs.bigint
      val processor : Procfs.Process.Stat.t -> int
      val exit_signal : Procfs.Process.Stat.t -> int
      val cnswap : Procfs.Process.Stat.t -> Procfs.bigint
      val nswap : Procfs.Process.Stat.t -> Procfs.bigint
      val wchan : Procfs.Process.Stat.t -> Procfs.bigint
      val sigcatch : Procfs.Process.Stat.t -> Procfs.bigint
      val sigignore : Procfs.Process.Stat.t -> Procfs.bigint
      val blocked : Procfs.Process.Stat.t -> Procfs.bigint
      val signal : Procfs.Process.Stat.t -> Procfs.bigint
      val kstkeip : Procfs.Process.Stat.t -> Procfs.bigint
      val kstkesp : Procfs.Process.Stat.t -> Procfs.bigint
      val startstack : Procfs.Process.Stat.t -> Procfs.bigint
      val endcode : Procfs.Process.Stat.t -> Procfs.bigint
      val startcode : Procfs.Process.Stat.t -> Procfs.bigint
      val rlim : Procfs.Process.Stat.t -> Procfs.bigint
      val rss : Procfs.Process.Stat.t -> Procfs.bigint
      val vsize : Procfs.Process.Stat.t -> Procfs.bigint
      val starttime : Procfs.Process.Stat.t -> Procfs.bigint
      val itrealvalue : Procfs.Process.Stat.t -> Procfs.bigint
      val unused : Procfs.Process.Stat.t -> Procfs.bigint
      val nice : Procfs.Process.Stat.t -> Procfs.bigint
      val priority : Procfs.Process.Stat.t -> Procfs.bigint
      val cstime : Procfs.Process.Stat.t -> Procfs.bigint
      val cutime : Procfs.Process.Stat.t -> Procfs.bigint
      val stime : Procfs.Process.Stat.t -> Procfs.bigint
      val utime : Procfs.Process.Stat.t -> Procfs.bigint
      val cmajflt : Procfs.Process.Stat.t -> Procfs.bigint
      val majflt : Procfs.Process.Stat.t -> Procfs.bigint
      val cminflt : Procfs.Process.Stat.t -> Procfs.bigint
      val minflt : Procfs.Process.Stat.t -> Procfs.bigint
      val flags : Procfs.Process.Stat.t -> Procfs.bigint
      val tpgid : Procfs.Process.Stat.t -> int
      val tty_nr : Procfs.Process.Stat.t -> int
      val session : Procfs.Process.Stat.t -> int
      val pgrp : Procfs.Process.Stat.t -> Core.Std.Pid.t
      val ppid : Procfs.Process.Stat.t -> Core.Std.Pid.t option
      val state : Procfs.Process.Stat.t -> char
      val comm : Procfs.Process.Stat.t -> string
      module Fields :
        sig
          val names : string list
          val policy :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val rt_priority :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val processor : (Procfs.Process.Stat.t, int) Fieldslib.Field.t
          val exit_signal : (Procfs.Process.Stat.t, int) Fieldslib.Field.t
          val cnswap :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val nswap :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val wchan :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val sigcatch :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val sigignore :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val blocked :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val signal :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val kstkeip :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val kstkesp :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val startstack :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val endcode :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val startcode :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val rlim : (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val rss : (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val vsize :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val starttime :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val itrealvalue :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val unused :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val nice : (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val priority :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val cstime :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val cutime :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val stime :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val utime :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val cmajflt :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val majflt :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val cminflt :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val minflt :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val flags :
            (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t
          val tpgid : (Procfs.Process.Stat.t, int) Fieldslib.Field.t
          val tty_nr : (Procfs.Process.Stat.t, int) Fieldslib.Field.t
          val session : (Procfs.Process.Stat.t, int) Fieldslib.Field.t
          val pgrp :
            (Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t
          val ppid :
            (Procfs.Process.Stat.t, Core.Std.Pid.t option) Fieldslib.Field.t
          val state : (Procfs.Process.Stat.t, char) Fieldslib.Field.t
          val comm : (Procfs.Process.Stat.t, string) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            comm:('acc__ ->
                  (Procfs.Process.Stat.t, string) Fieldslib.Field.t -> 'acc__) ->
            state:('acc__ ->
                   (Procfs.Process.Stat.t, char) Fieldslib.Field.t -> 'acc__) ->
            ppid:('acc__ ->
                  (Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> 'acc__) ->
            pgrp:('acc__ ->
                  (Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  'acc__) ->
            session:('acc__ ->
                     (Procfs.Process.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
            tty_nr:('acc__ ->
                    (Procfs.Process.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
            tpgid:('acc__ ->
                   (Procfs.Process.Stat.t, int) Fieldslib.Field.t -> 'acc__) ->
            flags:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            minflt:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            cminflt:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            majflt:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            cmajflt:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            utime:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            stime:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            cutime:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            cstime:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            priority:('acc__ ->
                      (Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'acc__) ->
            nice:('acc__ ->
                  (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'acc__) ->
            unused:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            itrealvalue:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> 'acc__) ->
            starttime:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'acc__) ->
            vsize:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            rss:('acc__ ->
                 (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 'acc__) ->
            rlim:('acc__ ->
                  (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'acc__) ->
            startcode:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'acc__) ->
            endcode:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            startstack:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> 'acc__) ->
            kstkesp:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            kstkeip:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            signal:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            blocked:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'acc__) ->
            sigignore:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'acc__) ->
            sigcatch:('acc__ ->
                      (Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'acc__) ->
            wchan:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            nswap:('acc__ ->
                   (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            cnswap:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            exit_signal:('acc__ ->
                         (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         'acc__) ->
            processor:('acc__ ->
                       (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                       'acc__) ->
            rt_priority:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> 'acc__) ->
            policy:('acc__ ->
                    (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'acc__) ->
            'acc__
          val make_creator :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> char) * 'compile_acc__) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Core.Std.Pid.t option) * 'compile_acc__) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Core.Std.Pid.t) * 'compile_acc__) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                    'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        'compile_acc__ ->
                        ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       'compile_acc__ ->
                       ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                       'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         'compile_acc__ ->
                         ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Process.Stat.t) * 'compile_acc__
          val create :
            comm:string ->
            state:char ->
            ppid:Core.Std.Pid.t option ->
            pgrp:Core.Std.Pid.t ->
            session:int ->
            tty_nr:int ->
            tpgid:int ->
            flags:Procfs.bigint ->
            minflt:Procfs.bigint ->
            cminflt:Procfs.bigint ->
            majflt:Procfs.bigint ->
            cmajflt:Procfs.bigint ->
            utime:Procfs.bigint ->
            stime:Procfs.bigint ->
            cutime:Procfs.bigint ->
            cstime:Procfs.bigint ->
            priority:Procfs.bigint ->
            nice:Procfs.bigint ->
            unused:Procfs.bigint ->
            itrealvalue:Procfs.bigint ->
            starttime:Procfs.bigint ->
            vsize:Procfs.bigint ->
            rss:Procfs.bigint ->
            rlim:Procfs.bigint ->
            startcode:Procfs.bigint ->
            endcode:Procfs.bigint ->
            startstack:Procfs.bigint ->
            kstkesp:Procfs.bigint ->
            kstkeip:Procfs.bigint ->
            signal:Procfs.bigint ->
            blocked:Procfs.bigint ->
            sigignore:Procfs.bigint ->
            sigcatch:Procfs.bigint ->
            wchan:Procfs.bigint ->
            nswap:Procfs.bigint ->
            cnswap:Procfs.bigint ->
            exit_signal:int ->
            processor:int ->
            rt_priority:Procfs.bigint ->
            policy:Procfs.bigint -> Procfs.Process.Stat.t
          val iter :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t -> unit) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t -> unit) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> unit) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  unit) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> unit) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> unit) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> unit) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> unit) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  unit) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> unit) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> unit) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 unit) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  unit) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> unit) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> unit) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     unit) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> unit) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> unit) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         unit) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> unit) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> unit) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    unit) ->
            unit
          val map :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t -> string) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t -> char) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> Core.Std.Pid.t option) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  Core.Std.Pid.t) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> int) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> int) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> int) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> Procfs.bigint) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  Procfs.bigint) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> Procfs.bigint) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> Procfs.bigint) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 Procfs.bigint) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  Procfs.bigint) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> Procfs.bigint) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> Procfs.bigint) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.bigint) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> Procfs.bigint) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> Procfs.bigint) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         int) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> int) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> Procfs.bigint) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.bigint) ->
            Procfs.Process.Stat.t
          val map_poly :
            (Procfs.Process.Stat.t, 'x0) Fieldslib.Field.user -> 'x0 list
          val for_all :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t -> bool) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t -> bool) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> bool) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  bool) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> bool) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 bool) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> bool) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         bool) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> bool) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            bool
          val exists :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t -> bool) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t -> bool) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> bool) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  bool) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> bool) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 bool) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> bool) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     bool) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> bool) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         bool) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> bool) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> bool) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    bool) ->
            bool
          val to_list :
            comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t ->
                  'elem__) ->
            state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t -> 'elem__) ->
            ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                  Fieldslib.Field.t -> 'elem__) ->
            pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                  'elem__) ->
            session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                     'elem__) ->
            tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
            tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t -> 'elem__) ->
            flags:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            minflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            cminflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            majflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            cmajflt:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            utime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            stime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            cutime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            cstime:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            priority:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'elem__) ->
            nice:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'elem__) ->
            unused:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> 'elem__) ->
            starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'elem__) ->
            vsize:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                 'elem__) ->
            rlim:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                  'elem__) ->
            startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'elem__) ->
            endcode:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t -> 'elem__) ->
            kstkesp:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            kstkeip:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            signal:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            blocked:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     'elem__) ->
            sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t -> 'elem__) ->
            sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'elem__) ->
            wchan:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            nswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            cnswap:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         'elem__) ->
            processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                       'elem__) ->
            rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t -> 'elem__) ->
            policy:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                    'elem__) ->
            'elem__ list
          module Direct :
            sig
              val iter :
                Procfs.Process.Stat.t ->
                comm:((Procfs.Process.Stat.t, string) Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> string -> unit) ->
                state:((Procfs.Process.Stat.t, char) Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> char -> unit) ->
                ppid:((Procfs.Process.Stat.t, Core.Std.Pid.t option)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Core.Std.Pid.t option -> unit) ->
                pgrp:((Procfs.Process.Stat.t, Core.Std.Pid.t)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Core.Std.Pid.t -> unit) ->
                session:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> int -> unit) ->
                tty_nr:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> int -> unit) ->
                tpgid:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> int -> unit) ->
                flags:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                minflt:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                cminflt:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                majflt:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                cmajflt:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                utime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                stime:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                cutime:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                cstime:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                priority:((Procfs.Process.Stat.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                nice:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                unused:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                itrealvalue:((Procfs.Process.Stat.t, Procfs.bigint)
                             Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                starttime:((Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                vsize:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                rss:((Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                rlim:((Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                startcode:((Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                endcode:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                startstack:((Procfs.Process.Stat.t, Procfs.bigint)
                            Fieldslib.Field.t ->
                            Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                kstkesp:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                kstkeip:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                signal:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                blocked:((Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                sigignore:((Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                sigcatch:((Procfs.Process.Stat.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                wchan:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                nswap:((Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                cnswap:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                exit_signal:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> int -> unit) ->
                processor:((Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> int -> unit) ->
                rt_priority:((Procfs.Process.Stat.t, Procfs.bigint)
                             Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                policy:((Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> unit) ->
                unit
              val fold :
                Procfs.Process.Stat.t ->
                init:'acc__ ->
                comm:('acc__ ->
                      (Procfs.Process.Stat.t, string) Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> string -> 'acc__) ->
                state:('acc__ ->
                       (Procfs.Process.Stat.t, char) Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> char -> 'acc__) ->
                ppid:('acc__ ->
                      (Procfs.Process.Stat.t, Core.Std.Pid.t option)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t ->
                      Core.Std.Pid.t option -> 'acc__) ->
                pgrp:('acc__ ->
                      (Procfs.Process.Stat.t, Core.Std.Pid.t)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Core.Std.Pid.t -> 'acc__) ->
                session:('acc__ ->
                         (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> int -> 'acc__) ->
                tty_nr:('acc__ ->
                        (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> int -> 'acc__) ->
                tpgid:('acc__ ->
                       (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> int -> 'acc__) ->
                flags:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                minflt:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                cminflt:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                majflt:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                cmajflt:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                utime:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                stime:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                cutime:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                cstime:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                priority:('acc__ ->
                          (Procfs.Process.Stat.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                nice:('acc__ ->
                      (Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                unused:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                itrealvalue:('acc__ ->
                             (Procfs.Process.Stat.t, Procfs.bigint)
                             Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                starttime:('acc__ ->
                           (Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                vsize:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                rss:('acc__ ->
                     (Procfs.Process.Stat.t, Procfs.bigint) Fieldslib.Field.t ->
                     Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                rlim:('acc__ ->
                      (Procfs.Process.Stat.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                startcode:('acc__ ->
                           (Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                endcode:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                startstack:('acc__ ->
                            (Procfs.Process.Stat.t, Procfs.bigint)
                            Fieldslib.Field.t ->
                            Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                kstkesp:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                kstkeip:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                signal:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                blocked:('acc__ ->
                         (Procfs.Process.Stat.t, Procfs.bigint)
                         Fieldslib.Field.t ->
                         Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                sigignore:('acc__ ->
                           (Procfs.Process.Stat.t, Procfs.bigint)
                           Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                sigcatch:('acc__ ->
                          (Procfs.Process.Stat.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                wchan:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                nswap:('acc__ ->
                       (Procfs.Process.Stat.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                cnswap:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                exit_signal:('acc__ ->
                             (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> int -> 'acc__) ->
                processor:('acc__ ->
                           (Procfs.Process.Stat.t, int) Fieldslib.Field.t ->
                           Procfs.Process.Stat.t -> int -> 'acc__) ->
                rt_priority:('acc__ ->
                             (Procfs.Process.Stat.t, Procfs.bigint)
                             Fieldslib.Field.t ->
                             Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                policy:('acc__ ->
                        (Procfs.Process.Stat.t, Procfs.bigint)
                        Fieldslib.Field.t ->
                        Procfs.Process.Stat.t -> Procfs.bigint -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Stat.t
      val sexp_of_t : Procfs.Process.Stat.t -> Sexplib.Sexp.t
    end
  module Statm :
    sig
      type t = {
        size : Procfs.bigint;
        resident : Procfs.bigint;
        share : Procfs.bigint;
        text : Procfs.bigint;
        lib : Procfs.bigint;
        data : Procfs.bigint;
        dt : Procfs.bigint;
      }
      val dt : Procfs.Process.Statm.t -> Procfs.bigint
      val data : Procfs.Process.Statm.t -> Procfs.bigint
      val lib : Procfs.Process.Statm.t -> Procfs.bigint
      val text : Procfs.Process.Statm.t -> Procfs.bigint
      val share : Procfs.Process.Statm.t -> Procfs.bigint
      val resident : Procfs.Process.Statm.t -> Procfs.bigint
      val size : Procfs.Process.Statm.t -> Procfs.bigint
      module Fields :
        sig
          val names : string list
          val dt : (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val data :
            (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val lib : (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val text :
            (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val share :
            (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val resident :
            (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val size :
            (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            size:('acc__ ->
                  (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'acc__) ->
            resident:('acc__ ->
                      (Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'acc__) ->
            share:('acc__ ->
                   (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   'acc__) ->
            text:('acc__ ->
                  (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'acc__) ->
            lib:('acc__ ->
                 (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 'acc__) ->
            data:('acc__ ->
                  (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'acc__) ->
            dt:('acc__ ->
                (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                'acc__) ->
            'acc__
          val make_creator :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      'compile_acc__ ->
                      ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   'compile_acc__ ->
                   ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'compile_acc__ ->
                  ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                'compile_acc__ ->
                ('input__ -> Procfs.bigint) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Process.Statm.t) * 'compile_acc__
          val create :
            size:Procfs.bigint ->
            resident:Procfs.bigint ->
            share:Procfs.bigint ->
            text:Procfs.bigint ->
            lib:Procfs.bigint ->
            data:Procfs.bigint -> dt:Procfs.bigint -> Procfs.Process.Statm.t
          val iter :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  unit) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> unit) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   unit) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  unit) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 unit) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  unit) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                unit) ->
            unit
          val map :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  Procfs.bigint) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> Procfs.bigint) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   Procfs.bigint) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  Procfs.bigint) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 Procfs.bigint) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  Procfs.bigint) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                Procfs.bigint) ->
            Procfs.Process.Statm.t
          val map_poly :
            (Procfs.Process.Statm.t, 'x0) Fieldslib.Field.user -> 'x0 list
          val for_all :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 bool) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                bool) ->
            bool
          val exists :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> bool) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   bool) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 bool) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  bool) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                bool) ->
            bool
          val to_list :
            size:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'elem__) ->
            resident:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t -> 'elem__) ->
            share:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                   'elem__) ->
            text:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'elem__) ->
            lib:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                 'elem__) ->
            data:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                  'elem__) ->
            dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                'elem__) ->
            'elem__ list
          module Direct :
            sig
              val iter :
                Procfs.Process.Statm.t ->
                size:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                resident:((Procfs.Process.Statm.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                share:((Procfs.Process.Statm.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                text:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                lib:((Procfs.Process.Statm.t, Procfs.bigint)
                     Fieldslib.Field.t ->
                     Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                data:((Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                dt:((Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.Process.Statm.t -> Procfs.bigint -> unit) ->
                unit
              val fold :
                Procfs.Process.Statm.t ->
                init:'acc__ ->
                size:('acc__ ->
                      (Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                resident:('acc__ ->
                          (Procfs.Process.Statm.t, Procfs.bigint)
                          Fieldslib.Field.t ->
                          Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                share:('acc__ ->
                       (Procfs.Process.Statm.t, Procfs.bigint)
                       Fieldslib.Field.t ->
                       Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                text:('acc__ ->
                      (Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                lib:('acc__ ->
                     (Procfs.Process.Statm.t, Procfs.bigint)
                     Fieldslib.Field.t ->
                     Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                data:('acc__ ->
                      (Procfs.Process.Statm.t, Procfs.bigint)
                      Fieldslib.Field.t ->
                      Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                dt:('acc__ ->
                    (Procfs.Process.Statm.t, Procfs.bigint) Fieldslib.Field.t ->
                    Procfs.Process.Statm.t -> Procfs.bigint -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Statm.t
      val sexp_of_t : Procfs.Process.Statm.t -> Sexplib.Sexp.t
    end
  module Status :
    sig
      type t = {
        uid : int;
        euid : int;
        suid : int;
        fsuid : int;
        gid : int;
        egid : int;
        sgid : int;
        fsgid : int;
      }
      val fsgid : Procfs.Process.Status.t -> int
      val sgid : Procfs.Process.Status.t -> int
      val egid : Procfs.Process.Status.t -> int
      val gid : Procfs.Process.Status.t -> int
      val fsuid : Procfs.Process.Status.t -> int
      val suid : Procfs.Process.Status.t -> int
      val euid : Procfs.Process.Status.t -> int
      val uid : Procfs.Process.Status.t -> int
      module Fields :
        sig
          val names : string list
          val fsgid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val sgid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val egid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val gid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val fsuid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val suid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val euid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val uid : (Procfs.Process.Status.t, int) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            uid:('acc__ ->
                 (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            euid:('acc__ ->
                  (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            suid:('acc__ ->
                  (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            fsuid:('acc__ ->
                   (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            gid:('acc__ ->
                 (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            egid:('acc__ ->
                  (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            sgid:('acc__ ->
                  (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            fsgid:('acc__ ->
                   (Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Process.Status.t) * 'compile_acc__
          val create :
            uid:int ->
            euid:int ->
            suid:int ->
            fsuid:int ->
            gid:int ->
            egid:int -> sgid:int -> fsgid:int -> Procfs.Process.Status.t
          val iter :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> unit) ->
            unit
          val map :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> int) ->
            Procfs.Process.Status.t
          val map_poly :
            (Procfs.Process.Status.t, 'x0) Fieldslib.Field.user -> 'x0 list
          val for_all :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            bool
          val exists :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> bool) ->
            bool
          val to_list :
            uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                   'elem__) ->
            gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t -> 'elem__) ->
            fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                   'elem__) ->
            'elem__ list
          module Direct :
            sig
              val iter :
                Procfs.Process.Status.t ->
                uid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                     Procfs.Process.Status.t -> int -> unit) ->
                euid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> unit) ->
                suid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> unit) ->
                fsuid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Status.t -> int -> unit) ->
                gid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                     Procfs.Process.Status.t -> int -> unit) ->
                egid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> unit) ->
                sgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> unit) ->
                fsgid:((Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Status.t -> int -> unit) ->
                unit
              val fold :
                Procfs.Process.Status.t ->
                init:'acc__ ->
                uid:('acc__ ->
                     (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                     Procfs.Process.Status.t -> int -> 'acc__) ->
                euid:('acc__ ->
                      (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> 'acc__) ->
                suid:('acc__ ->
                      (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> 'acc__) ->
                fsuid:('acc__ ->
                       (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Status.t -> int -> 'acc__) ->
                gid:('acc__ ->
                     (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                     Procfs.Process.Status.t -> int -> 'acc__) ->
                egid:('acc__ ->
                      (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> 'acc__) ->
                sgid:('acc__ ->
                      (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                      Procfs.Process.Status.t -> int -> 'acc__) ->
                fsgid:('acc__ ->
                       (Procfs.Process.Status.t, int) Fieldslib.Field.t ->
                       Procfs.Process.Status.t -> int -> 'acc__) ->
                'acc__
            end
        end
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Status.t
      val sexp_of_t : Procfs.Process.Status.t -> Sexplib.Sexp.t
    end
  module Fd :
    sig
      type fd_stat =
          Path of string
        | Socket of Procfs.Process.Inode.t
        | Pipe of Procfs.Process.Inode.t
        | Inotify
      type t = { fd : int; fd_stat : Procfs.Process.Fd.fd_stat; }
      val fd_stat : Procfs.Process.Fd.t -> Procfs.Process.Fd.fd_stat
      val fd : Procfs.Process.Fd.t -> int
      module Fields :
        sig
          val names : string list
          val fd_stat :
            (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
            Fieldslib.Field.t
          val fd : (Procfs.Process.Fd.t, int) Fieldslib.Field.t
          val fold :
            init:'acc__ ->
            fd:('acc__ ->
                (Procfs.Process.Fd.t, int) Fieldslib.Field.t -> 'acc__) ->
            fd_stat:('acc__ ->
                     (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> 'acc__) ->
            'acc__
          val make_creator :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t ->
                     'compile_acc__ ->
                     ('input__ -> Procfs.Process.Fd.fd_stat) * 'compile_acc__) ->
            'compile_acc__ ->
            ('input__ -> Procfs.Process.Fd.t) * 'compile_acc__
          val create :
            fd:int ->
            fd_stat:Procfs.Process.Fd.fd_stat -> Procfs.Process.Fd.t
          val iter :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> unit) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> unit) ->
            unit
          val map :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> int) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> Procfs.Process.Fd.fd_stat) ->
            Procfs.Process.Fd.t
          val map_poly :
            (Procfs.Process.Fd.t, 'x0) Fieldslib.Field.user -> 'x0 list
          val for_all :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> bool) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> bool) ->
            bool
          val exists :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> bool) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> bool) ->
            bool
          val to_list :
            fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t -> 'elem__) ->
            fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                     Fieldslib.Field.t -> 'elem__) ->
            'elem__ list
          module Direct :
            sig
              val iter :
                Procfs.Process.Fd.t ->
                fd:((Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
                    Procfs.Process.Fd.t -> int -> unit) ->
                fd_stat:((Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                         Fieldslib.Field.t ->
                         Procfs.Process.Fd.t ->
                         Procfs.Process.Fd.fd_stat -> unit) ->
                unit
              val fold :
                Procfs.Process.Fd.t ->
                init:'acc__ ->
                fd:('acc__ ->
                    (Procfs.Process.Fd.t, int) Fieldslib.Field.t ->
                    Procfs.Process.Fd.t -> int -> 'acc__) ->
                fd_stat:('acc__ ->
                         (Procfs.Process.Fd.t, Procfs.Process.Fd.fd_stat)
                         Fieldslib.Field.t ->
                         Procfs.Process.Fd.t ->
                         Procfs.Process.Fd.fd_stat -> 'acc__) ->
                'acc__
            end
        end
      val fd_stat_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Fd.fd_stat
      val sexp_of_fd_stat : Procfs.Process.Fd.fd_stat -> Sexplib.Sexp.t
      val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.Fd.t
      val sexp_of_t : Procfs.Process.Fd.t -> Sexplib.Sexp.t
    end
  type t = {
    pid : Core.Std.Pid.t;
    cmdline : string;
    cwd : string option;
    environ : string option;
    exe : string option;
    root : string option;
    limits : Procfs.Process.Limits.t option;
    stat : Procfs.Process.Stat.t;
    statm : Procfs.Process.Statm.t;
    status : Procfs.Process.Status.t;
    task_stats : Procfs.Process.Stat.t Core.Std.Pid.Map.t;
    top_command : string;
    fds : Procfs.Process.Fd.t list option;
    oom_adj : int;
    oom_score : int;
  }
  val oom_score : Procfs.Process.t -> int
  val oom_adj : Procfs.Process.t -> int
  val fds : Procfs.Process.t -> Procfs.Process.Fd.t list option
  val top_command : Procfs.Process.t -> string
  val task_stats :
    Procfs.Process.t -> Procfs.Process.Stat.t Core.Std.Pid.Map.t
  val status : Procfs.Process.t -> Procfs.Process.Status.t
  val statm : Procfs.Process.t -> Procfs.Process.Statm.t
  val stat : Procfs.Process.t -> Procfs.Process.Stat.t
  val limits : Procfs.Process.t -> Procfs.Process.Limits.t option
  val root : Procfs.Process.t -> string option
  val exe : Procfs.Process.t -> string option
  val environ : Procfs.Process.t -> string option
  val cwd : Procfs.Process.t -> string option
  val cmdline : Procfs.Process.t -> string
  val pid : Procfs.Process.t -> Core.Std.Pid.t
  module Fields :
    sig
      val names : string list
      val oom_score : (Procfs.Process.t, int) Fieldslib.Field.t
      val oom_adj : (Procfs.Process.t, int) Fieldslib.Field.t
      val fds :
        (Procfs.Process.t, Procfs.Process.Fd.t list option) Fieldslib.Field.t
      val top_command : (Procfs.Process.t, string) Fieldslib.Field.t
      val task_stats :
        (Procfs.Process.t, Procfs.Process.Stat.t Core.Std.Pid.Map.t)
        Fieldslib.Field.t
      val status :
        (Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t
      val statm :
        (Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t
      val stat : (Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t
      val limits :
        (Procfs.Process.t, Procfs.Process.Limits.t option) Fieldslib.Field.t
      val root : (Procfs.Process.t, string option) Fieldslib.Field.t
      val exe : (Procfs.Process.t, string option) Fieldslib.Field.t
      val environ : (Procfs.Process.t, string option) Fieldslib.Field.t
      val cwd : (Procfs.Process.t, string option) Fieldslib.Field.t
      val cmdline : (Procfs.Process.t, string) Fieldslib.Field.t
      val pid : (Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t
      val fold :
        init:'acc__ ->
        pid:('acc__ ->
             (Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t -> 'acc__) ->
        cmdline:('acc__ ->
                 (Procfs.Process.t, string) Fieldslib.Field.t -> 'acc__) ->
        cwd:('acc__ ->
             (Procfs.Process.t, string option) Fieldslib.Field.t -> 'acc__) ->
        environ:('acc__ ->
                 (Procfs.Process.t, string option) Fieldslib.Field.t ->
                 'acc__) ->
        exe:('acc__ ->
             (Procfs.Process.t, string option) Fieldslib.Field.t -> 'acc__) ->
        root:('acc__ ->
              (Procfs.Process.t, string option) Fieldslib.Field.t -> 'acc__) ->
        limits:('acc__ ->
                (Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> 'acc__) ->
        stat:('acc__ ->
              (Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              'acc__) ->
        statm:('acc__ ->
               (Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               'acc__) ->
        status:('acc__ ->
                (Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                'acc__) ->
        task_stats:('acc__ ->
                    (Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t -> 'acc__) ->
        top_command:('acc__ ->
                     (Procfs.Process.t, string) Fieldslib.Field.t -> 'acc__) ->
        fds:('acc__ ->
             (Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> 'acc__) ->
        oom_adj:('acc__ ->
                 (Procfs.Process.t, int) Fieldslib.Field.t -> 'acc__) ->
        oom_score:('acc__ ->
                   (Procfs.Process.t, int) Fieldslib.Field.t -> 'acc__) ->
        'acc__
      val make_creator :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> Core.Std.Pid.t) * 'compile_acc__) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> string option) * 'compile_acc__) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                 'compile_acc__ ->
                 ('input__ -> string option) * 'compile_acc__) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t ->
             'compile_acc__ -> ('input__ -> string option) * 'compile_acc__) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t ->
              'compile_acc__ -> ('input__ -> string option) * 'compile_acc__) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t ->
                'compile_acc__ ->
                ('input__ -> Procfs.Process.Limits.t option) * 'compile_acc__) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              'compile_acc__ ->
              ('input__ -> Procfs.Process.Stat.t) * 'compile_acc__) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               'compile_acc__ ->
               ('input__ -> Procfs.Process.Statm.t) * 'compile_acc__) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                'compile_acc__ ->
                ('input__ -> Procfs.Process.Status.t) * 'compile_acc__) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t ->
                    'compile_acc__ ->
                    ('input__ -> Procfs.Process.Stat.t Core.Std.Pid.Map.t) *
                    'compile_acc__) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t ->
                     'compile_acc__ -> ('input__ -> string) * 'compile_acc__) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t ->
             'compile_acc__ ->
             ('input__ -> Procfs.Process.Fd.t list option) * 'compile_acc__) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t ->
                   'compile_acc__ -> ('input__ -> int) * 'compile_acc__) ->
        'compile_acc__ -> ('input__ -> Procfs.Process.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:Procfs.Process.Limits.t option ->
        stat:Procfs.Process.Stat.t ->
        statm:Procfs.Process.Statm.t ->
        status:Procfs.Process.Status.t ->
        task_stats:Procfs.Process.Stat.t Core.Std.Pid.Map.t ->
        top_command:string ->
        fds:Procfs.Process.Fd.t list option ->
        oom_adj:int -> oom_score:int -> Procfs.Process.t
      val iter :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t -> unit) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t -> unit) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t -> unit) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t -> unit) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t -> unit) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t -> unit) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> unit) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              unit) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               unit) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                unit) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t -> unit) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t -> unit) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> unit) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t -> unit) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t -> unit) -> unit
      val map :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t ->
             Core.Std.Pid.t) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t -> string) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t ->
             string option) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                 string option) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t ->
             string option) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t ->
              string option) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> Procfs.Process.Limits.t option) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              Procfs.Process.Stat.t) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               Procfs.Process.Statm.t) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                Procfs.Process.Status.t) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t ->
                    Procfs.Process.Stat.t Core.Std.Pid.Map.t) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t -> string) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> Procfs.Process.Fd.t list option) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t -> int) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t -> int) ->
        Procfs.Process.t
      val map_poly : (Procfs.Process.t, 'x0) Fieldslib.Field.user -> 'x0 list
      val for_all :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t -> bool) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t -> bool) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> bool) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              bool) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               bool) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                bool) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t -> bool) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t -> bool) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> bool) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t -> bool) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t -> bool) -> bool
      val exists :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t -> bool) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t -> bool) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t -> bool) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> bool) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              bool) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               bool) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                bool) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t -> bool) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t -> bool) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> bool) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t -> bool) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t -> bool) -> bool
      val to_list :
        pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t -> 'elem__) ->
        cmdline:((Procfs.Process.t, string) Fieldslib.Field.t -> 'elem__) ->
        cwd:((Procfs.Process.t, string option) Fieldslib.Field.t -> 'elem__) ->
        environ:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                 'elem__) ->
        exe:((Procfs.Process.t, string option) Fieldslib.Field.t -> 'elem__) ->
        root:((Procfs.Process.t, string option) Fieldslib.Field.t -> 'elem__) ->
        limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                Fieldslib.Field.t -> 'elem__) ->
        stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
              'elem__) ->
        statm:((Procfs.Process.t, Procfs.Process.Statm.t) Fieldslib.Field.t ->
               'elem__) ->
        status:((Procfs.Process.t, Procfs.Process.Status.t) Fieldslib.Field.t ->
                'elem__) ->
        task_stats:((Procfs.Process.t,
                     Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                    Fieldslib.Field.t -> 'elem__) ->
        top_command:((Procfs.Process.t, string) Fieldslib.Field.t -> 'elem__) ->
        fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
             Fieldslib.Field.t -> 'elem__) ->
        oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t -> 'elem__) ->
        oom_score:((Procfs.Process.t, int) Fieldslib.Field.t -> 'elem__) ->
        'elem__ list
      module Direct :
        sig
          val iter :
            Procfs.Process.t ->
            pid:((Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                 Procfs.Process.t -> Core.Std.Pid.t -> unit) ->
            cmdline:((Procfs.Process.t, string) Fieldslib.Field.t ->
                     Procfs.Process.t -> string -> unit) ->
            cwd:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                 Procfs.Process.t -> string option -> unit) ->
            environ:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                     Procfs.Process.t -> string option -> unit) ->
            exe:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                 Procfs.Process.t -> string option -> unit) ->
            root:((Procfs.Process.t, string option) Fieldslib.Field.t ->
                  Procfs.Process.t -> string option -> unit) ->
            limits:((Procfs.Process.t, Procfs.Process.Limits.t option)
                    Fieldslib.Field.t ->
                    Procfs.Process.t ->
                    Procfs.Process.Limits.t option -> unit) ->
            stat:((Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
                  Procfs.Process.t -> Procfs.Process.Stat.t -> unit) ->
            statm:((Procfs.Process.t, Procfs.Process.Statm.t)
                   Fieldslib.Field.t ->
                   Procfs.Process.t -> Procfs.Process.Statm.t -> unit) ->
            status:((Procfs.Process.t, Procfs.Process.Status.t)
                    Fieldslib.Field.t ->
                    Procfs.Process.t -> Procfs.Process.Status.t -> unit) ->
            task_stats:((Procfs.Process.t,
                         Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                        Fieldslib.Field.t ->
                        Procfs.Process.t ->
                        Procfs.Process.Stat.t Core.Std.Pid.Map.t -> unit) ->
            top_command:((Procfs.Process.t, string) Fieldslib.Field.t ->
                         Procfs.Process.t -> string -> unit) ->
            fds:((Procfs.Process.t, Procfs.Process.Fd.t list option)
                 Fieldslib.Field.t ->
                 Procfs.Process.t -> Procfs.Process.Fd.t list option -> unit) ->
            oom_adj:((Procfs.Process.t, int) Fieldslib.Field.t ->
                     Procfs.Process.t -> int -> unit) ->
            oom_score:((Procfs.Process.t, int) Fieldslib.Field.t ->
                       Procfs.Process.t -> int -> unit) ->
            unit
          val fold :
            Procfs.Process.t ->
            init:'acc__ ->
            pid:('acc__ ->
                 (Procfs.Process.t, Core.Std.Pid.t) Fieldslib.Field.t ->
                 Procfs.Process.t -> Core.Std.Pid.t -> 'acc__) ->
            cmdline:('acc__ ->
                     (Procfs.Process.t, string) Fieldslib.Field.t ->
                     Procfs.Process.t -> string -> 'acc__) ->
            cwd:('acc__ ->
                 (Procfs.Process.t, string option) Fieldslib.Field.t ->
                 Procfs.Process.t -> string option -> 'acc__) ->
            environ:('acc__ ->
                     (Procfs.Process.t, string option) Fieldslib.Field.t ->
                     Procfs.Process.t -> string option -> 'acc__) ->
            exe:('acc__ ->
                 (Procfs.Process.t, string option) Fieldslib.Field.t ->
                 Procfs.Process.t -> string option -> 'acc__) ->
            root:('acc__ ->
                  (Procfs.Process.t, string option) Fieldslib.Field.t ->
                  Procfs.Process.t -> string option -> 'acc__) ->
            limits:('acc__ ->
                    (Procfs.Process.t, Procfs.Process.Limits.t option)
                    Fieldslib.Field.t ->
                    Procfs.Process.t ->
                    Procfs.Process.Limits.t option -> 'acc__) ->
            stat:('acc__ ->
                  (Procfs.Process.t, Procfs.Process.Stat.t) Fieldslib.Field.t ->
                  Procfs.Process.t -> Procfs.Process.Stat.t -> 'acc__) ->
            statm:('acc__ ->
                   (Procfs.Process.t, Procfs.Process.Statm.t)
                   Fieldslib.Field.t ->
                   Procfs.Process.t -> Procfs.Process.Statm.t -> 'acc__) ->
            status:('acc__ ->
                    (Procfs.Process.t, Procfs.Process.Status.t)
                    Fieldslib.Field.t ->
                    Procfs.Process.t -> Procfs.Process.Status.t -> 'acc__) ->
            task_stats:('acc__ ->
                        (Procfs.Process.t,
                         Procfs.Process.Stat.t Core.Std.Pid.Map.t)
                        Fieldslib.Field.t ->
                        Procfs.Process.t ->
                        Procfs.Process.Stat.t Core.Std.Pid.Map.t -> 'acc__) ->
            top_command:('acc__ ->
                         (Procfs.Process.t, string) Fieldslib.Field.t ->
                         Procfs.Process.t -> string -> 'acc__) ->
            fds:('acc__ ->
                 (Procfs.Process.t, Procfs.Process.Fd.t list option)
                 Fieldslib.Field.t ->
                 Procfs.Process.t ->
                 Procfs.Process.Fd.t list option -> 'acc__) ->
            oom_adj:('acc__ ->
                     (Procfs.Process.t, int) Fieldslib.Field.t ->
                     Procfs.Process.t -> int -> 'acc__) ->
            oom_score:('acc__ ->
                       (Procfs.Process.t, int) Fieldslib.Field.t ->
                       Procfs.Process.t -> int -> 'acc__) ->
            'acc__
        end
    end
  val t_of_sexp : Sexplib.Sexp.t -> Procfs.Process.t
  val sexp_of_t : Procfs.Process.t -> Sexplib.Sexp.t
end