irc-client-1.1.1.1: An IRC client library.

Copyright(c) 2017 Michael Walker
LicenseMIT
MaintainerMichael Walker <mike@barrucadu.co.uk>
Stabilityexperimental
PortabilityFlexibleInstances, GADTs, GeneralizedNewtypeDeriving, MultiParamTypeClasses
Safe HaskellNone
LanguageHaskell2010

Network.IRC.Client.Internal.Types

Contents

Description

Internal types. Most of these are re-exported elsewhere as lenses.

This module is NOT considered to form part of the public interface of this library.

Synopsis

The IRC monad

newtype IRC s a Source #

The IRC monad.

Constructors

IRC 

Fields

Instances
MonadState s (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

get :: IRC s s #

put :: s -> IRC s () #

state :: (s -> (a, s)) -> IRC s a #

Monad (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

(>>=) :: IRC s a -> (a -> IRC s b) -> IRC s b #

(>>) :: IRC s a -> IRC s b -> IRC s b #

return :: a -> IRC s a #

fail :: String -> IRC s a #

Functor (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

fmap :: (a -> b) -> IRC s a -> IRC s b #

(<$) :: a -> IRC s b -> IRC s a #

Applicative (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

pure :: a -> IRC s a #

(<*>) :: IRC s (a -> b) -> IRC s a -> IRC s b #

liftA2 :: (a -> b -> c) -> IRC s a -> IRC s b -> IRC s c #

(*>) :: IRC s a -> IRC s b -> IRC s b #

(<*) :: IRC s a -> IRC s b -> IRC s a #

Alternative (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

empty :: IRC s a #

(<|>) :: IRC s a -> IRC s a -> IRC s a #

some :: IRC s a -> IRC s [a] #

many :: IRC s a -> IRC s [a] #

MonadPlus (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

mzero :: IRC s a #

mplus :: IRC s a -> IRC s a -> IRC s a #

MonadIO (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

liftIO :: IO a -> IRC s a #

MonadThrow (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

throwM :: Exception e => e -> IRC s a #

MonadCatch (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

catch :: Exception e => IRC s a -> (e -> IRC s a) -> IRC s a #

MonadMask (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

mask :: ((forall a. IRC s a -> IRC s a) -> IRC s b) -> IRC s b #

uninterruptibleMask :: ((forall a. IRC s a -> IRC s a) -> IRC s b) -> IRC s b #

generalBracket :: IRC s a -> (a -> ExitCase b -> IRC s c) -> (a -> IRC s b) -> IRC s (b, c) #

MonadReader (IRCState s) (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

ask :: IRC s (IRCState s) #

local :: (IRCState s -> IRCState s) -> IRC s a -> IRC s a #

reader :: (IRCState s -> a) -> IRC s a #

State

data IRCState s Source #

The state of an IRC session.

Constructors

IRCState 

Fields

Instances
MonadReader (IRCState s) (IRC s) Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

ask :: IRC s (IRCState s) #

local :: (IRCState s -> IRCState s) -> IRC s a -> IRC s a #

reader :: (IRCState s -> a) -> IRC s a #

data ConnectionConfig s Source #

The static state of an IRC server connection.

Constructors

ConnectionConfig 

Fields

data InstanceConfig s Source #

The updateable state of an IRC connection.

Constructors

InstanceConfig 

Fields

  • _nick :: Text

    Client nick

  • _channels :: [Text]

    Current channels: this list both determines the channels to join on connect, and is modified by the default event handlers when channels are joined or parted.

  • _version :: Text

    The version is sent in response to the CTCP "VERSION" request by the default event handlers.

  • _handlers :: [EventHandler s]

    The registered event handlers. The order in this list is the order in which they are executed.

  • _ignore :: [(Text, Maybe Text)]

    List of nicks (optionally restricted to channels) to ignore messages from. Nothing ignores globally.

data ConnectionState Source #

The state of the connection.

Instances
Bounded ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Enum ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Eq ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Ord ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Read ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Show ConnectionState Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Events

data EventHandler s where Source #

A function which handles an event.

Constructors

EventHandler :: (Event Text -> Maybe b) -> (Source Text -> b -> IRC s ()) -> EventHandler s 

Exceptions

data Timeout Source #

Exception thrown to kill the client if the timeout elapses with nothing received from the server.

Constructors

Timeout 
Instances
Bounded Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Enum Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Eq Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Methods

(==) :: Timeout -> Timeout -> Bool #

(/=) :: Timeout -> Timeout -> Bool #

Ord Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Read Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Show Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Exception Timeout Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

data Disconnect Source #

Exception thrown to all managed threads when the client disconnects.

Constructors

Disconnect 
Instances
Bounded Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Enum Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Eq Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Ord Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Read Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Show Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types

Exception Disconnect Source # 
Instance details

Defined in Network.IRC.Client.Internal.Types