hzay      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxNoneIJN+"A function which handles an event.#A description of the event handler.Which type to be triggered byThe function to call.$Types of events which can be caught. Match all events!Match no events/*The updateable state of an IRC connection.1 Client nick2Client username3Client realname4Current channels5Response to CTCP VERSION6The registered event handlers7`List of nicks (optionally restricted to channels) to ignore messages from. No channel = global.8-The static state of an IRC server connection.:+Function to connect and start the conduits.;Message send queue.<The server host.=The server port.>/The minimum time between two adjacent messages.?9Action to run if the remote server closes the connection.@>Function to log messages sent to and received from the server.AThe origin of a message.F"Read-only connection configurationGMutable user stateH%Mutable instance configuration in STMIThe IRC monad, with state.JThe IRC monad.NConstruct a new IRC stateOAccess the client state.P6Extract the connection configuration from an IRC stateQ4Extract the instance configuration from an IRC stateR(Extract the user state from an IRC stateSMExtract the current snapshot of the instance configuration from an IRC stateTAccess the connection configUAccess the instance config TVarV.Access the instance config as it is right now.WMOverwrite the instance config, even if it has changed since we looked at it.XAccess the user state.Y)Access the user state as it is right now.ZSet the user state.[Get the type of an event.B !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Z  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ZMLKJIDEFGHNOPQRSTUVWXYZABC89:;<=>?@/01234567 !"#$%&'()*+,-.[   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[NoneIJNy;Connect to a server using the supplied connection function.zThe event loop.{Forget failed decodings.|LBlock on receiving a message and invoke all matching handlers concurrently.}$Check if an event is ignored or not.~$Get the event handlers for an event.6A conduit which logs everything which goes through it.\0Print messages to stdout, with the current time.]1Append messages to a file, with the current time.^Do no logging._]Send a message as UTF-8, using TLS if enabled. This blocks if messages are sent too rapidly.`TSend a message, using TLS if enabled. This blocks if messages are sent too rapidly.aUDisconnect from the server, properly tearing down the TLS session (if there is one).@Disconnect immediately, without waiting for messages to be sent.yz{|}~\]^_`ayz{|}~\]^_`ayz{|}~\]^_`aNonebUpdate the nick in the instance configuration and also send an update message to the server. This doesn't attempt to resolve nick collisions, that's up to the event handlers.cQUpdate the channel list in the instance configuration and also part the channel.dRemove a channel from the list without sending a part command (be careful not to let the channel list get out of sync with the real-world state if you use it for anything!)eAdd an eventHandlerf)Send a message to the source of an event.g Construct a PRIVMSG containing a CTCPh Construct a NOTICE containing a CTCPbcdefghbcdefghbcdefghbcdefghNone i7The default event handlers, the following are included:respond to server PING messages with a PONG;respond to CTCP PING requests with a CTCP PONG;respond to CTCP VERSION" requests with the version string;respond to CTCP TIME requests with the system time;Vupdate the nick upon receiving the welcome message, in case the server modifies it;2mangle the nick if the server reports a collision;update the channel list on JOIN and KICK.These event handlers are all exposed through the Network.IRC.Client.Handlers module, so you can use them directly if you are building up your / from scratch.mIf you are building a bot, you may want to write an event handler to process messages representing commands.jRespond to server PING messages with a PONG.kRespond to CTCP PING requests with a CTCP PONG.lRespond to CTCP VERSION" requests with the version string.mRespond to CTCP TIME requests with the system time.n{Update the nick upon welcome (numeric reply 001), as it may not be what we requested (eg, in the case of a nick too long).oZMangle the nick if there's a collision (numeric replies 432, 433, and 436) when we set itjUpon receiving a channel topic (numeric reply 332), add the channel to the list (if not already present).*Update the channel list upon being kicked.pgThe default disconnect handler: do nothing. You might want to override this with one which reconnects.Match and handle a named CTCP Match and handle a numeric replyhBreak some text on the first occurrence of a substring, removing the substring from the second portion. ijklmnopijklmnopijklmnop ijklmnopNoneq Connect to a server without TLS.rConnect to a server with TLS.sEConnect to a server without TLS, with the provided logging function.tAConnect to a server with TLS, with the provided logging function.uRun the event loop for a server, receiving messages and handing them off to handlers as appropriate. Messages will be logged to stdout.vlike u but for clients with state.wLike u%, but use the provided initial state.x1Construct a default IRC configuration from a nickq The hostnameThe portThe flood cooldownr The hostnameThe portThe flood cooldownsThe message logger The hostnameThe portThe flood cooldowntThe message logger The hostnameThe portThe flood cooldownuvwxs  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghipqrstuvwxqruwvABCst\]^_`axpiqrstuvwx       !!"#$%&'()*+,-./01234556789:;<==>?@ABCDEFGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~irccl_LVcUEvZnfVJ6jkDQHwpbiwNetwork.IRC.ClientNetwork.IRC.Client.TypesNetwork.IRC.Client.UtilsNetwork.IRC.Client.HandlersNetwork.IRC.Client.Internalircco_G3CgExHfS3x5A8AGPzYPKV%Network.IRC.Conduit.Internal.Messages rawMessage toByteString_message_source_rawEventServerChannelUserSourceRawMsgNumericPongPingKickInviteTopicModeQuitPartJoinNickNoticePrivmsgMessage EventHandler _description _matchType _eventFunc EventType EEverythingENothingEPrivmsgENoticeECTCPENickEJoinEPartEQuitEModeETopicEInviteEKickEPingENumericInstanceConfig_nick _username _realname _channels_ctcpVer_eventHandlers_ignoreConnectionConfig_func _sendqueue_server_port_flood _disconnect_logfuncOrigin FromServer FromClientIRCState_connectionConfig _userState_instanceConfig StatefulIRCIRCUnicodeMessage UnicodeSource UnicodeEvent newIRCStateircStategetConnectionConfiggetInstanceConfig getUserStategetInstanceConfig'connectionConfiginstanceConfigTVarinstanceConfigputInstanceConfig stateTVarstateputState eventType stdoutLogger fileLogger noopLoggersendsendBS disconnectsetNick leaveChanneldelChan addHandlerreplyctcp ctcpReplydefaultEventHandlers pingHandlerctcpPingHandlerctcpVersionHandlerctcpTimeHandler welcomeNick nickManglerdefaultDisconnectHandlerconnectconnectWithTLSconnect'connectWithTLS'start startStatefulstart'defaultIRCConfconnectInternalrunner forgetful eventSink isIgnoredgetHandlersFor logConduit disconnectNow joinHandler kickHandler ctcpHandler numHandlerbreakOn'