úÎYØVÑ5      !"#$%&'()*+,-./01234 Safe-Inferred -Check if a message mentions a given nickname.ÿThis isn't the same as substring search, since the nickname could appear inside a longer word. For example, "ron" isn't really mentioned in "asynchronic". Therefore, this function is a bit smarter about this, trying to capturing real mentions, and works quite well in practice.5 Message contentNickname  5 None !Details of the connection to IRC. IRC Server address, e.g. "irc.freenode.net" IRC server port, 6667 should be a safe defaultAWhether to make an encrypted connection via TLS (not implemented)IRC nickname for the bot, e.g. "funbot"6Connection password, use if the nickname is registered­Connect to an IRC server using the given connection parameters, and return a handle to the open socket. This just opens a TCP connection, without sending any IRC commands.æDisconnect from IRC by closing the client's side of the connection. This function is mainly provided for completeness. You should probably use the QUIT command of IRC to quit the network in a manner coordinated with the server.sSend an IRC command, given in string form, to the server. The given command string shouldn't contain any newlines.>Send an IRC message represented in generic form to the server."Send an IRC message to the server.lReceive an IRC message, given in string form, from the server. The resulting string won't contain newlines.lReceive an IRC message in generic form from the server. If parsing the message read from the server fails, 6 is returned.ZReceive the next valid (successfully parsed) IRC message in generic form from the server.\Receive an IRC message from the server. If parsing the message read from the server fails, 6 is returned.IReceive the next valid (successfully parsed) IRC message from the server.     None:An event triggered by an IRC message sent from the server.ÖThe server sent a list of nicknames present in a channel. Parameters: Channel privacy mode, channel name, list of users. Each list item is a pair of a user privilege level in the channel, and the user's nickname.jThe client has been invited to a channel by another user. Parameters: Channel, nickname of inviting user.gChannel topic change. Parameterss: Channel, nickname of user who changed the topic, new topic content. ñA private message sent specifically to the client from a user. The last parameter indicates whether the message is actually a notice. If yes, the client shouldn't send any automatic response. Parameters: Nickname, message, whether notice.!âMessage sent in a channel by a user. The last parameter indicates whether the message is actually a notice. If yes, the client shouldn't automatically send a response. Parameters: Channel, nickname, message, whether notice."TODO#WA user left the network, optonally for the given reason. Parameters: Nickname, reason.$^A user left a channel, optionally with a given reason. Parameters: Channel, nickname, reason.%7A user joined a channel. Parameters: Channel, nickname.&zOne or more users have been kicked from a channel for an optionally given reason. Parameters: Channel, nicknames, reason.'¬A ping was sent to the bot. The parameters are the server name and optionally a server to forward the response to. They can be passed as-is directly to the PONG response.(9Try to generate events from an IRC message. If it fails, 7+ an error message is returned. Otherwise, 8) a list of generated events is returned.)?Receive IRC events. If parsing and detecting the events fails, 6 is returned.*PReceive the next valid (successfully parsed and detected) series of IRC events. !"#$%&'9:()* !"#$%&'()*'&%$#"! ()* '&%$#"! 9:()*None +bLog in as an IRC user with nickname and optional password, using the given connection parameters.,ÿIRC servers send PING messages at regular intervals to test the presence of an active client, at least if no other activity is detected on the connection. The server closes the connection automatically if a PONG response isn't sent from the client within a certain amount of time.ºTherefore, an IRC client usually listens to these PINGs and sends back PONG messages. This function sends a PONG. The parameters should simply be the ones received in the PING message.-Join an IRC channel..Join one or more IRC channels./Leave an IRC channel.0Leave one or more IRC channels.1"Leave all IRC channels you joined.2&Send a private message to an IRC user.3!Send a message to an IRC channel.4BFinish the IRC session, asking the server to close the connection. +*Handle to the open socket, returned from Connection configuration'Whether you want to be invisible (mode +i)&Whether you want to see wallops (mode +w),Handle to the open socket Server nameOptional server to forward to-Handle to the open socket Channel nameOptional channel key (password).Handle to the open socket%List of channels and optional keys/012Handle to the open socketThe user's nicknameThe message to send3Handle to the open socketThe channel nameThe message to send4Handle to the open socket*Optional message, e.g. the reason you quit +,-./01234 +,-./01234 +,-./01234None5  !"#$%&'()*+,-./01234;         !"#$%&'()*+,-./0123456789:;<=>?@ABACDEFirc-fun-client-0.1.0.0Network.IRC.Fun.Client.IONetwork.IRC.Fun.Client.EventsNetwork.IRC.Fun.Client.UtilNetwork.IRC.Fun.Client.CommandsNetwork.IRC.Fun.ClientbaseGHC.IO.Handle.TypesHandleirc-fun-messages-0.1.0.0'Network.IRC.Fun.Messages.Internal.TypesRegularVoiceOperator PrivilegeSecretPrivatePublicChannelPrivacymentions Connectionserverporttlsnickpassword ircConnect ircDisconnect hPutIrcRawhPutIrcGenerichPutIrc hGetIrcRawhGetIrcGenericOncehGetIrcGeneric hGetIrcOncehGetIrcEvent OtherEventNamesInviteTopicPrivateMessageChannelMessageModeQuitPartJoinKickPing detectEventshGetIrcEventsOnce hGetIrcEventsircLoginircPongircJoin ircJoinMultiircPart ircPartMulti ircPartAll ircSendToUserircSendToChannelircQuit isNameChar Data.MaybeNothing Data.EitherLeftRightdetectMessageEventsdetectReplyEvents