b\q      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopNoneHIM%"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 no events.Match all 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 configurationG%Mutable instance configuration in STMHThe IRC monad.LConstruct a new IRC stateMAccess the entire state.N6Extract the connection configuration from an IRC stateO4Extract the instance configuration from an IRC statePMExtract the current snapshot of the instance configuration from an IRC stateQAccess the connection configRAccess the instance config TVarS.Access the instance config as it is right now.TMOverwrite the instance config, even if it has changed since we looked at it.UGet the type of an event.< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUT  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUTKJIHDEFGLMNOPQRSTACB89:;<=>?@/01234567.-,+*)('&%$#"! U   .-,+*)('&%$#"! /0123456789:;<=>?@ACBDEFGHIJKLMNOPQRSTUNoneHIMq;Connect to a server using the supplied connection function.rThe event loop.sForget failed decodings.tLBlock on receiving a message and invoke all matching handlers concurrently.u$Check if an event is ignored or not.v$Get the event handlers for an event.w6A conduit which logs everything which goes through it.V0Print messages to stdout, with the current time.W1Append messages to a file, with the current time.XDo no logging.Y]Send a message as UTF-8, using TLS if enabled. This blocks if messages are sent too rapidly.ZTSend a message, using TLS if enabled. This blocks if messages are sent too rapidly.[UDisconnect from the server, properly tearing down the TLS session (if there is one).x@Disconnect immediately, without waiting for messages to be sent.qrstuvwVWXYZ[xqrstuvwVWXYZ[xqrstuvwVWXYZ[xNone\Update 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.]QUpdate the channel list in the instance configuration and also part the channel.^Remove 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!)_)Send a message to the source of an event.` Construct a PRIVMSG containing a CTCPa Construct a NOTICE containing a CTCP\]^_`a\]^_`a\]^_`a\]^_`aNone b7The 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.cRespond to server PING messages with a PONG.dRespond to CTCP PING requests with a CTCP PONG.eRespond to CTCP VERSION" requests with the version string.fRespond to CTCP TIME requests with the system time.g{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).hZMangle the nick if there's a collision (numeric replies 432, 433, and 436) when we set ityjUpon receiving a channel topic (numeric reply 332), add the channel to the list (if not already present).z*Update the channel list upon being kicked.igThe 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 reply}hBreak some text on the first occurrence of a substring, removing the substring from the second portion. bcdefghyzi{|}bcdefghibcdefghi bcdefghyzi{|}Nonej Connect to a server without TLS.kConnect to a server with TLS.lEConnect to a server without TLS, with the provided logging function.mAConnect to a server with TLS, with the provided logging function.nRun the event loop for a server, receiving messages and handing them off to handlers as appropriate. Messages will be logged to stdout.oLike n%, but use the provided initial state.p1Construct a default IRC configuration from a nickj The hostnameThe portThe flood cooldownk The hostnameThe portThe flood cooldownlThe message logger The hostnameThe portThe flood cooldownmThe message logger The hostnameThe portThe flood cooldownnopk  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abijklmnopjknoACBlmVWXYZ[pibjklmnop~       !!"#$%&'()*+,-./01234556789:;<==>?@ABCDEFGHHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~irc-client-0.2.4.0Network.IRC.ClientNetwork.IRC.Client.TypesNetwork.IRC.Client.UtilsNetwork.IRC.Client.HandlersNetwork.IRC.Client.Internalirc-conduit-0.1.2.0%Network.IRC.Conduit.Internal.Messages rawMessage toByteString_message_source_rawEventUserChannelServerSourcePrivmsgNoticeNickJoinPartQuitModeTopicInviteKickPingPongNumericRawMsgMessage EventHandler _description _matchType _eventFunc EventTypeENumericEPingEKickEInviteETopicEModeEQuitEPartEJoinENickECTCPENoticeEPrivmsgENothing EEverythingInstanceConfig_nick _username _realname _channels_ctcpVer_eventHandlers_ignoreConnectionConfig_func _sendqueue_server_port_flood _disconnect_logfuncOrigin FromClient FromServerIRCState_connectionConfig_instanceConfigIRCUnicodeMessage UnicodeSource UnicodeEvent newIRCStateircStategetConnectionConfiggetInstanceConfiggetInstanceConfig'connectionConfiginstanceConfigTVarinstanceConfigputInstanceConfig eventType stdoutLogger fileLogger noopLoggersendsendBS disconnectsetNick leaveChanneldelChanreplyctcp ctcpReplydefaultEventHandlers pingHandlerctcpPingHandlerctcpVersionHandlerctcpTimeHandler welcomeNick nickManglerdefaultDisconnectHandlerconnectconnectWithTLSconnect'connectWithTLS'startstart'defaultIRCConfconnectInternalrunner forgetful eventSink isIgnoredgetHandlersFor logConduit disconnectNow joinHandler kickHandler ctcpHandler numHandlerbreakOn'