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 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 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 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
      val map_poly :
        ([< `Read | `Set_and_create ], Procfs.Process.Limits.Rlimit.t, 'x0)
        Fieldslib.Field.user -> 'x0 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