nvg8      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~NoneOT-"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 realname4Client password5Current channels6Response to CTCP VERSION7The registered event handlers8`List of nicks (optionally restricted to channels) to ignore messages from. No channel = global.9-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.@PAction to run after successfully connecting to the server and setting the nick.A9Action to run if the remote server closes the connection.B>Function to log messages sent to and received from the server.CThe origin of a message.H"Read-only connection configurationIMutable user stateJ%Mutable instance configuration in STMKThe IRC monad, with state.LThe IRC monad.PConstruct a new IRC stateQAccess the client state.R6Extract the connection configuration from an IRC stateS4Extract the instance configuration from an IRC stateT(Extract the user state from an IRC stateUMExtract the current snapshot of the instance configuration from an IRC stateVAccess the connection configWAccess the instance config TVarX.Access the instance config as it is right now.YMOverwrite the instance config, even if it has changed since we looked at it.ZAccess the user state.[)Access the user state as it is right now.\Set the user state.]Get the type of an event.D !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]\     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]\ONMLKFGHIJPQRSTUVWXYZ[\CDE9:;<=>?@AB/012345678 !"#$%&'()*+,-.]   !"#$%&'()*+,-./ 0123456789 :;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]NoneOT;Connect to a server using the supplied connection function.The 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.c0Print messages to stdout, with the current time.d1Append messages to a file, with the current time.eDo no logging.f]Send a message as UTF-8, using TLS if enabled. This blocks if messages are sent too rapidly.gTSend a message, using TLS if enabled. This blocks if messages are sent too rapidly.hUDisconnect from the server, properly tearing down the TLS session (if there is one).@Disconnect immediately, without waiting for messages to be sent.'Function to start the network conduits.Connect handlerDisconnect handlerLogging functionServer hostname Server post Flood timeoutcdefghcdefghcdefghNoneiUpdate 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.jQUpdate the channel list in the instance configuration and also part the channel.kRemove 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!)lAdd an eventHandlerm)Send a message to the source of an event.n Construct a PRIVMSG containing a CTCPo Construct a NOTICE containing a CTCPijklmnoijklmnoijklmnoijklmnoNonep7The 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.qRespond to server PING messages with a PONG.rRespond to CTCP PING requests with a CTCP PONG.sRespond to CTCP VERSION" requests with the version string.tRespond to CTCP TIME requests with the system time.u{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).vZMangle 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.wEThe default connect handler: set the nick and join default channels.xgThe 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.pqrstuvwx pqrstuvwx pqrstuvwxpqrstuvwxNoney Connect to a server without TLS.zConnect to a server with TLS.{EConnect to a server without TLS, with the provided logging function.|AConnect to a server with TLS, with the provided logging function.}Run the event loop for a server, receiving messages and handing them off to handlers as appropriate. Messages will be logged to stdout.~like } but for clients with state.Like }%, but use the provided initial state.1Construct a default IRC configuration from a nicky The hostnameThe portThe flood cooldownz The hostnameThe portThe flood cooldown{The message logger The hostnameThe portThe flood cooldown|The message logger The hostnameThe portThe flood cooldown}~v     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]cdefghijklmnopwxyz{|}~yz}~CDE{|cdefghwxpyz{|}~       !!"#$%&'()*+,-./01234556789:;<=>>?@ABCDEFGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)irc-client-0.4.1.0-5dRZKX0OwPSKZfaBNkq9a0Network.IRC.ClientNetwork.IRC.Client.TypesNetwork.IRC.Client.UtilsNetwork.IRC.Client.HandlersNetwork.IRC.Client.Internal*irc-conduit-0.2.0.0-3rKidh6psbd1AcQhB6R12W%Network.IRC.Conduit.Internal.Messages rawMessage toByteString_message_source_rawEventServerChannelUserSourceRawMsgNumericPongPingKickInviteTopicModeQuitPartJoinNickNoticePrivmsgMessage EventHandler _description _matchType _eventFunc EventType EEverythingENothingEPrivmsgENoticeECTCPENickEJoinEPartEQuitEModeETopicEInviteEKickEPingENumericInstanceConfig_nick _username _realname _password _channels_ctcpVer_eventHandlers_ignoreConnectionConfig_func _sendqueue_server_port_flood _onconnect _ondisconnect_logfuncOrigin FromServer FromClientIRCState_connectionConfig _userState_instanceConfig StatefulIRCIRCUnicodeMessage UnicodeSource UnicodeEvent newIRCStateircStategetConnectionConfiggetInstanceConfig getUserStategetInstanceConfig'connectionConfiginstanceConfigTVarinstanceConfigputInstanceConfig stateTVarstateputState eventType $fEqOrigin $fReadOrigin $fShowOrigin $fEqEventType$fShowEventType stdoutLogger fileLogger noopLoggersendsendBS disconnectsetNick leaveChanneldelChan addHandlerreplyctcp ctcpReplydefaultEventHandlers pingHandlerctcpPingHandlerctcpVersionHandlerctcpTimeHandler welcomeNick nickManglerdefaultOnConnectdefaultOnDisconnectconnectconnectWithTLSconnect'connectWithTLS'start startStatefulstart'defaultIRCConfconnectInternalrunner forgetful eventSink isIgnoredgetHandlersFor logConduit disconnectNow joinHandler kickHandler ctcpHandler numHandlerbreakOn'