sig
  type timeval = { sec : int; usec : int; }
  type rusage = {
    utime : Uwt_base.Misc.timeval;
    stime : Uwt_base.Misc.timeval;
    maxrss : int64;
    ixrss : int64;
    idrss : int64;
    isrss : int64;
    minflt : int64;
    majflt : int64;
    nswap : int64;
    inblock : int64;
    outblock : int64;
    msgsnd : int64;
    msgrcv : int64;
    nsignals : int64;
    nvcsw : int64;
    nivcsw : int64;
  }
  type cpu_times = {
    user : int64;
    nice : int64;
    sys : int64;
    idle : int64;
    irq : int64;
  }
  type cpu_info = {
    model : string;
    speed : int;
    cpu_times : Uwt_base.Misc.cpu_times;
  }
  type interface_address = {
    name : string;
    phys_addr : string;
    is_internal : bool;
    address : Uwt_base.sockaddr option;
    netmask : Uwt_base.sockaddr option;
  }
  type handle_type = File | Tty | Pipe | Tcp | Udp | Unknown
  val guess_handle : Unix.file_descr -> Uwt_base.Misc.handle_type
  val resident_set_memory : unit -> int64 Uwt_base.uv_result
  val resident_set_memory_exn : unit -> int64
  val uptime : unit -> float Uwt_base.uv_result
  val uptime_exn : unit -> float
  val getrusage : unit -> Uwt_base.Misc.rusage Uwt_base.uv_result
  val getrusage_exn : unit -> Uwt_base.Misc.rusage
  val cpu_info : unit -> Uwt_base.Misc.cpu_info array Uwt_base.uv_result
  val cpu_info_exn : unit -> Uwt_base.Misc.cpu_info array
  val interface_addresses :
    unit -> Uwt_base.Misc.interface_address array Uwt_base.uv_result
  val interface_addresses_exn : unit -> Uwt_base.Misc.interface_address array
  val load_avg : unit -> float * float * float
  val ip4_addr : string -> int -> Uwt_base.sockaddr Uwt_base.uv_result
  val ip4_addr_exn : string -> int -> Uwt_base.sockaddr
  val ip4_name : Uwt_base.sockaddr -> string Uwt_base.uv_result
  val ip4_name_exn : Uwt_base.sockaddr -> string
  val ip6_addr : string -> int -> Uwt_base.sockaddr Uwt_base.uv_result
  val ip6_addr_exn : string -> int -> Uwt_base.sockaddr
  val ip6_name : Uwt_base.sockaddr -> string Uwt_base.uv_result
  val ip6_name_exn : Uwt_base.sockaddr -> string
  val get_total_memory : unit -> int64
  val hrtime : unit -> int64
  type version = { major : int; minor : int; patch : int; }
  val version : unit -> Uwt_base.Misc.version
  val version_raw : unit -> int
  val version_string : unit -> string
  val os_homedir : unit -> string Uwt_base.uv_result
  val os_tmpdir : unit -> string Uwt_base.uv_result
  val get_passwd : unit -> Unix.passwd_entry Uwt_base.uv_result
  val exepath : unit -> string Uwt_base.uv_result
  val cwd : unit -> string Uwt_base.uv_result
  val chdir : string -> Uwt_base.Int_result.unit
  val getenv : string -> string Uwt_base.uv_result
  val putenv : key:string -> data:string -> Uwt_base.Int_result.unit
  val unsetenv : string -> Uwt_base.Int_result.unit
  val getppid : unit -> Uwt_base.Int_result.int
  val set_process_title : string -> Uwt_base.Int_result.unit
  val get_process_title : unit -> string Uwt_base.uv_result
end