ircbot-0.6.6: A library for writing IRC bots
Safe HaskellNone
LanguageHaskell2010

Network.IRC.Bot.BotMonad

Documentation

newtype BotPartT m a Source #

Constructors

BotPartT 

Fields

Instances

Instances details
MonadTrans BotPartT Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

lift :: Monad m => m a -> BotPartT m a

MonadRWS r w s m => MonadRWS r w s (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

MonadError e m => MonadError e (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

throwError :: e -> BotPartT m a

catchError :: BotPartT m a -> (e -> BotPartT m a) -> BotPartT m a

MonadReader r m => MonadReader r (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

ask :: BotPartT m r

local :: (r -> r) -> BotPartT m a -> BotPartT m a

reader :: (r -> a) -> BotPartT m a

MonadWriter w m => MonadWriter w (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

writer :: (a, w) -> BotPartT m a

tell :: w -> BotPartT m ()

listen :: BotPartT m a -> BotPartT m (a, w)

pass :: BotPartT m (a, w -> w) -> BotPartT m a

MonadState s m => MonadState s (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

get :: BotPartT m s

put :: s -> BotPartT m ()

state :: (s -> (a, s)) -> BotPartT m a

Monad m => Monad (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

(>>=) :: BotPartT m a -> (a -> BotPartT m b) -> BotPartT m b

(>>) :: BotPartT m a -> BotPartT m b -> BotPartT m b

return :: a -> BotPartT m a

Functor m => Functor (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

fmap :: (a -> b) -> BotPartT m a -> BotPartT m b

(<$) :: a -> BotPartT m b -> BotPartT m a

MonadFix m => MonadFix (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

mfix :: (a -> BotPartT m a) -> BotPartT m a

Applicative m => Applicative (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

pure :: a -> BotPartT m a

(<*>) :: BotPartT m (a -> b) -> BotPartT m a -> BotPartT m b

liftA2 :: (a -> b -> c) -> BotPartT m a -> BotPartT m b -> BotPartT m c

(*>) :: BotPartT m a -> BotPartT m b -> BotPartT m b

(<*) :: BotPartT m a -> BotPartT m b -> BotPartT m a

MonadPlus m => MonadPlus (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

mzero :: BotPartT m a

mplus :: BotPartT m a -> BotPartT m a -> BotPartT m a

Alternative m => Alternative (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

empty :: BotPartT m a

(<|>) :: BotPartT m a -> BotPartT m a -> BotPartT m a

some :: BotPartT m a -> BotPartT m [a]

many :: BotPartT m a -> BotPartT m [a]

MonadIO m => MonadIO (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

liftIO :: IO a -> BotPartT m a

MonadCont m => MonadCont (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

Methods

callCC :: ((a -> BotPartT m b) -> BotPartT m a) -> BotPartT m a

(Functor m, MonadIO m, MonadPlus m) => BotMonad (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

class (Functor m, MonadPlus m, MonadIO m) => BotMonad m where Source #

Methods

askBotEnv :: m BotEnv Source #

askMessage :: m Message Source #

askOutChan :: m (Chan Message) Source #

localMessage :: (Message -> Message) -> m a -> m a Source #

sendMessage :: Message -> m () Source #

logM :: LogLevel -> ByteString -> m () Source #

whoami :: m ByteString Source #

Instances

Instances details
(Functor m, MonadIO m, MonadPlus m) => BotMonad (BotPartT m) Source # 
Instance details

Defined in Network.IRC.Bot.BotMonad

(BotMonad m, Monad m) => BotMonad (ParsecT s u m) Source # 
Instance details

Defined in Network.IRC.Bot.Parsec

Methods

askBotEnv :: ParsecT s u m BotEnv Source #

askMessage :: ParsecT s u m Message Source #

askOutChan :: ParsecT s u m (Chan Message) Source #

localMessage :: (Message -> Message) -> ParsecT s u m a -> ParsecT s u m a Source #

sendMessage :: Message -> ParsecT s u m () Source #

logM :: LogLevel -> ByteString -> ParsecT s u m () Source #

whoami :: ParsecT s u m ByteString Source #

data BotEnv Source #

Constructors

BotEnv 

Fields

mapBotPartT :: (m a -> n b) -> BotPartT m a -> BotPartT n b Source #

maybeZero :: MonadPlus m => Maybe a -> m a Source #