sig
  type who = SELF | CHILDREN
  type t = {
    ru_utime : float;
    ru_stime : float;
    ru_maxrss : int64;
    ru_ixrss : int64;
    ru_idrss : int64;
    ru_isrss : int64;
    ru_minflt : int64;
    ru_majflt : int64;
    ru_nswap : int64;
    ru_inblock : int64;
    ru_oublock : int64;
    ru_msgsnd : int64;
    ru_msgrcv : int64;
    ru_nsignals : int64;
    ru_nvcsw : int64;
    ru_nivcsw : int64;
  }
  val ru_utime : Unix_ext.RUsage.t -> float
  val ru_stime : Unix_ext.RUsage.t -> float
  val ru_maxrss : Unix_ext.RUsage.t -> int64
  val ru_ixrss : Unix_ext.RUsage.t -> int64
  val ru_idrss : Unix_ext.RUsage.t -> int64
  val ru_isrss : Unix_ext.RUsage.t -> int64
  val ru_minflt : Unix_ext.RUsage.t -> int64
  val ru_majflt : Unix_ext.RUsage.t -> int64
  val ru_nswap : Unix_ext.RUsage.t -> int64
  val ru_inblock : Unix_ext.RUsage.t -> int64
  val ru_oublock : Unix_ext.RUsage.t -> int64
  val ru_msgsnd : Unix_ext.RUsage.t -> int64
  val ru_msgrcv : Unix_ext.RUsage.t -> int64
  val ru_nsignals : Unix_ext.RUsage.t -> int64
  val ru_nvcsw : Unix_ext.RUsage.t -> int64
  val ru_nivcsw : Unix_ext.RUsage.t -> int64
  val add : Unix_ext.RUsage.t -> Unix_ext.RUsage.t -> Unix_ext.RUsage.t
end