sig
  type bigint = Big_int.big_int
  type stat =
    Procfs.stat = {
    comm : string;
    state : char;
    ppid : int;
    pgrp : int;
    session : int;
    tty_nr : int;
    tpgid : int;
    flags : bigint;
    minflt : bigint;
    cminflt : bigint;
    majflt : bigint;
    cmajflt : bigint;
    utime : bigint;
    stime : bigint;
    cutime : bigint;
    cstime : bigint;
    priority : bigint;
    nice : bigint;
    unused : bigint;
    itrealvalue : bigint;
    starttime : bigint;
    vsize : bigint;
    rss : bigint;
    rlim : bigint;
    startcode : bigint;
    endcode : bigint;
    startstack : bigint;
    kstkesp : bigint;
    signal : bigint;
    blocked : bigint;
    sigignore : bigint;
    sigcatch : bigint;
    wchan : bigint;
    nswap : bigint;
    cnswap : bigint;
    exit_signal : int;
    processor : int;
    rt_priority : bigint;
    policy : bigint;
  }
  type statm =
    Procfs.statm = {
    size : bigint;
    resident : bigint;
    share : bigint;
    text : bigint;
    lib : bigint;
    data : bigint;
    dt : bigint;
  }
  type status =
    Procfs.status = {
    uid : int;
    euid : int;
    suid : int;
    fsuid : int;
  }
  type process =
    Procfs.process = {
    pid : int;
    cmdline : string;
    cwd : string option;
    environ : string option;
    exe : string option;
    root : string option;
    stat : stat;
    statm : statm;
    status : status;
    top_command : string;
  }
  val get_all_procs : unit -> process list
  val with_pid : int -> process
  val with_uid : int -> process list
  val with_username : string -> process list
  val hertz : float
  val memtotal : int
end