sig
  type descr =
      Plain of Unix.file_descr
    | Encrypted of Unix.file_descr * Ssl.socket
  val sleep : float -> unit Lwt.t
  val yield : unit -> unit Lwt.t
  val run : 'Lwt.t -> 'a
  val read : Lwt_unix.descr -> string -> int -> int -> int Lwt.t
  val write : Lwt_unix.descr -> string -> int -> int -> int Lwt.t
  val pipe : unit -> (Unix.file_descr * Unix.file_descr) Lwt.t
  val socket :
    Unix.socket_domain -> Unix.socket_type -> int -> Unix.file_descr Lwt.t
  val socketpair :
    Unix.socket_domain ->
    Unix.socket_type -> int -> (Unix.file_descr * Unix.file_descr) Lwt.t
  val shutdown : Lwt_unix.descr -> Unix.shutdown_command -> unit
  val accept : Lwt_unix.descr -> (Lwt_unix.descr * Unix.sockaddr) Lwt.t
  val connect : Lwt_unix.descr -> Unix.sockaddr -> unit Lwt.t
  val wait : unit -> (int * Unix.process_status) Lwt.t
  val waitpid :
    Unix.wait_flag list -> int -> (int * Unix.process_status) Lwt.t
  val system : string -> Unix.process_status Lwt.t
  type lwt_in_channel
  type lwt_out_channel
  val input_char : Lwt_unix.lwt_in_channel -> char Lwt.t
  val input_line : Lwt_unix.lwt_in_channel -> string Lwt.t
  val input : Lwt_unix.lwt_in_channel -> string -> int -> int -> int Lwt.t
  val really_input :
    Lwt_unix.lwt_in_channel -> string -> int -> int -> unit Lwt.t
  val open_process_in : string -> Lwt_unix.lwt_in_channel Lwt.t
  val open_process_out : string -> Lwt_unix.lwt_out_channel Lwt.t
  val open_process :
    string -> (Lwt_unix.lwt_in_channel * Lwt_unix.lwt_out_channel) Lwt.t
  val open_process_full :
    string ->
    string array ->
    (Lwt_unix.lwt_in_channel * Lwt_unix.lwt_out_channel *
     Lwt_unix.lwt_in_channel)
    Lwt.t
  val close_process_in : Lwt_unix.lwt_in_channel -> Unix.process_status Lwt.t
  val close_process_out :
    Lwt_unix.lwt_out_channel -> Unix.process_status Lwt.t
  val close_process :
    Lwt_unix.lwt_in_channel * Lwt_unix.lwt_out_channel ->
    Unix.process_status Lwt.t
  val close_process_full :
    Lwt_unix.lwt_in_channel * Lwt_unix.lwt_out_channel *
    Lwt_unix.lwt_in_channel -> Unix.process_status Lwt.t
  val inputs_length : unit -> int
  val outputs_length : unit -> int
  val wait_children_length : unit -> int
  val get_new_sleeps : unit -> int
  val sleep_queue_size : unit -> int
end