sig
  type t = {
    utime : float;
    stime : float;
    maxrss : int64;
    ixrss : int64;
    idrss : int64;
    isrss : int64;
    minflt : int64;
    majflt : int64;
    nswap : int64;
    inblock : int64;
    oublock : int64;
    msgsnd : int64;
    msgrcv : int64;
    nsignals : int64;
    nvcsw : int64;
    nivcsw : int64;
  }
  val nivcsw : Core_unix.Resource_usage.t -> int64
  val nvcsw : Core_unix.Resource_usage.t -> int64
  val nsignals : Core_unix.Resource_usage.t -> int64
  val msgrcv : Core_unix.Resource_usage.t -> int64
  val msgsnd : Core_unix.Resource_usage.t -> int64
  val oublock : Core_unix.Resource_usage.t -> int64
  val inblock : Core_unix.Resource_usage.t -> int64
  val nswap : Core_unix.Resource_usage.t -> int64
  val majflt : Core_unix.Resource_usage.t -> int64
  val minflt : Core_unix.Resource_usage.t -> int64
  val isrss : Core_unix.Resource_usage.t -> int64
  val idrss : Core_unix.Resource_usage.t -> int64
  val ixrss : Core_unix.Resource_usage.t -> int64
  val maxrss : Core_unix.Resource_usage.t -> int64
  val stime : Core_unix.Resource_usage.t -> float
  val utime : Core_unix.Resource_usage.t -> float
  module Fields :
    sig
      val names : string list
      val nivcsw : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val nvcsw : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val nsignals : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val msgrcv : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val msgsnd : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val oublock : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val inblock : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val nswap : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val majflt : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val minflt : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val isrss : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val idrss : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val ixrss : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val maxrss : (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t
      val stime : (Core_unix.Resource_usage.t, float) Fieldslib.Field.t
      val utime : (Core_unix.Resource_usage.t, float) Fieldslib.Field.t
      val fold :
        init:'acc__ ->
        utime:('acc__ ->
               (Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'acc__) ->
        stime:('acc__ ->
               (Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'acc__) ->
        maxrss:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        ixrss:('acc__ ->
               (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'acc__) ->
        idrss:('acc__ ->
               (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'acc__) ->
        isrss:('acc__ ->
               (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'acc__) ->
        minflt:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        majflt:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        nswap:('acc__ ->
               (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'acc__) ->
        inblock:('acc__ ->
                 (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'acc__) ->
        oublock:('acc__ ->
                 (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'acc__) ->
        msgsnd:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        msgrcv:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        nsignals:('acc__ ->
                  (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  'acc__) ->
        nvcsw:('acc__ ->
               (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'acc__) ->
        nivcsw:('acc__ ->
                (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'acc__) ->
        'acc__
      val make_creator :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> float) * 'compile_acc__) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'compile_acc__ -> ('input__ -> int64) * 'compile_acc__) ->
        'compile_acc__ ->
        ('input__ -> Core_unix.Resource_usage.t) * 'compile_acc__
      val create :
        utime:float ->
        stime:float ->
        maxrss:int64 ->
        ixrss:int64 ->
        idrss:int64 ->
        isrss:int64 ->
        minflt:int64 ->
        majflt:int64 ->
        nswap:int64 ->
        inblock:int64 ->
        oublock:int64 ->
        msgsnd:int64 ->
        msgrcv:int64 ->
        nsignals:int64 ->
        nvcsw:int64 -> nivcsw:int64 -> Core_unix.Resource_usage.t
      val map :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> float) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> float) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> int64) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> int64) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> int64) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> int64) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 int64) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 int64) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  int64) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> int64) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                int64) ->
        Core_unix.Resource_usage.t
      val iter :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> unit) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> unit) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 unit) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 unit) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  unit) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> unit) ->
        unit
      val for_all :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> bool) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> bool) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 bool) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 bool) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  bool) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        bool
      val exists :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> bool) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t -> bool) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 bool) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 bool) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  bool) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t -> bool) ->
        bool
      val to_list :
        utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'elem__) ->
        stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
               'elem__) ->
        maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'elem__) ->
        idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'elem__) ->
        isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'elem__) ->
        minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'elem__) ->
        inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'elem__) ->
        oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                 'elem__) ->
        msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                  'elem__) ->
        nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
               'elem__) ->
        nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                'elem__) ->
        'elem__ list
      val map_poly :
        ([< `Read | `Set_and_create ], Core_unix.Resource_usage.t, 'x0)
        Fieldslib.Field.user -> 'x0 list
      module Direct :
        sig
          val iter :
            Core_unix.Resource_usage.t ->
            utime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> float -> unit) ->
            stime:((Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> float -> unit) ->
            maxrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            ixrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> unit) ->
            idrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> unit) ->
            isrss:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> unit) ->
            minflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            majflt:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            nswap:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> unit) ->
            inblock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                     Core_unix.Resource_usage.t -> int64 -> unit) ->
            oublock:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                     Core_unix.Resource_usage.t -> int64 -> unit) ->
            msgsnd:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            msgrcv:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            nsignals:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                      Core_unix.Resource_usage.t -> int64 -> unit) ->
            nvcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> unit) ->
            nivcsw:((Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> unit) ->
            unit
          val fold :
            Core_unix.Resource_usage.t ->
            init:'acc__ ->
            utime:('acc__ ->
                   (Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> float -> 'acc__) ->
            stime:('acc__ ->
                   (Core_unix.Resource_usage.t, float) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> float -> 'acc__) ->
            maxrss:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            ixrss:('acc__ ->
                   (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            idrss:('acc__ ->
                   (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            isrss:('acc__ ->
                   (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            minflt:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            majflt:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            nswap:('acc__ ->
                   (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            inblock:('acc__ ->
                     (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                     Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            oublock:('acc__ ->
                     (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                     Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            msgsnd:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            msgrcv:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            nsignals:('acc__ ->
                      (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                      Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            nvcsw:('acc__ ->
                   (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                   Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            nivcsw:('acc__ ->
                    (Core_unix.Resource_usage.t, int64) Fieldslib.Field.t ->
                    Core_unix.Resource_usage.t -> int64 -> 'acc__) ->
            'acc__
        end
    end
  val get : [ `Children | `Self ] -> Core_unix.Resource_usage.t
  val add :
    Core_unix.Resource_usage.t ->
    Core_unix.Resource_usage.t -> Core_unix.Resource_usage.t
  val t_of_sexp : Sexplib.Sexp.t -> Core_unix.Resource_usage.t
  val sexp_of_t : Core_unix.Resource_usage.t -> Sexplib.Sexp.t
end