sig
  type 'a t
  val ( >>= ) :
    'Irc_transport.IO.t ->
    ('-> 'Irc_transport.IO.t) -> 'Irc_transport.IO.t
  val return : '-> 'Irc_transport.IO.t
  type file_descr
  type inet_addr
  type config
  val open_socket :
    ?config:Irc_transport.IO.config ->
    Irc_transport.IO.inet_addr ->
    int -> Irc_transport.IO.file_descr Irc_transport.IO.t
  val close_socket : Irc_transport.IO.file_descr -> unit Irc_transport.IO.t
  val read :
    Irc_transport.IO.file_descr ->
    Bytes.t -> int -> int -> int Irc_transport.IO.t
  val write :
    Irc_transport.IO.file_descr ->
    Bytes.t -> int -> int -> int Irc_transport.IO.t
  val read_with_timeout :
    timeout:int ->
    Irc_transport.IO.file_descr ->
    Bytes.t -> int -> int -> int option Irc_transport.IO.t
  val gethostbyname :
    string -> Irc_transport.IO.inet_addr list Irc_transport.IO.t
  val iter :
    ('-> unit Irc_transport.IO.t) -> 'a list -> unit Irc_transport.IO.t
  val sleep : int -> unit Irc_transport.IO.t
  val pick : ('Irc_transport.IO.t list -> 'Irc_transport.IO.t) option
end