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