functor (P : Client_params->
  sig
    val connect : unit -> unit
    val disconnect : unit -> unit
    val event_loop : unit -> unit
    val join : string -> unit
    val part : string -> unit
    val quit : string -> unit
    val change_user : string -> string -> string -> unit
    val change_nick : string -> unit
    val kick : string -> string -> string -> unit
    val invite : string -> string -> unit
    val op : string -> string -> unit
    val set_away : string -> unit
    val set_back : unit -> unit
    val change_topic : string -> string -> unit
    val say : string -> string -> unit
    val notice : string -> string -> unit
    val ctcp_ping : string -> float -> unit
    val get_topic : string -> unit
    val change_mode : Irc.mode -> unit
    val get_chan_list : unit -> unit
    val get_version : unit -> unit
    val get_time : unit -> unit
    val get_info : unit -> unit
    val get_who : string -> unit
    val get_who_ircop : string -> unit
    val get_whois : string -> unit
    val get_whowas : string -> unit
    val ping : string -> unit
    val on_message : (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_notice : (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_mode : (Irc.sender -> Irc.mode -> unit) Pervasives.ref
    val on_nick : (Irc.sender -> string -> unit) Pervasives.ref
    val on_kick :
      (Irc.sender -> string -> string -> string option -> unit)
      Pervasives.ref
    val on_reply :
      (Irc.sender -> Irc.reply -> string array -> unit) Pervasives.ref
    val on_ctcp_version : (Irc.sender -> string -> unit) Pervasives.ref
    val on_ctcp_time : (Irc.sender -> string -> unit) Pervasives.ref
    val on_ctcp_ping :
      (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_ctcp_action :
      (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_ctcp : (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_ctcp_ping_reply :
      (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_ctcp_reply :
      (Irc.sender -> string -> string -> unit) Pervasives.ref
    val on_ping : (Irc.sender -> string -> unit) Pervasives.ref
    val on_join : (Irc.sender -> string -> unit) Pervasives.ref
    val on_part :
      (Irc.sender -> string -> string option -> unit) Pervasives.ref
    val on_quit : (Irc.sender -> string option -> unit) Pervasives.ref
    val on_error : (Irc.sender -> string -> unit) Pervasives.ref
    val dump_everything : bool Pervasives.ref
  end