ircbot-0.6.5.1: A library for writing IRC bots

Safe HaskellNone
LanguageHaskell98

Network.IRC.Bot.BotMonad

Documentation

newtype BotPartT m a Source #

Constructors

BotPartT 

Fields

Instances

MonadTrans BotPartT Source # 

Methods

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

MonadRWS r w s m => MonadRWS r w s (BotPartT m) Source # 
MonadError e m => MonadError e (BotPartT m) Source # 

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 # 

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 # 

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 # 

Methods

get :: BotPartT m s

put :: s -> BotPartT m ()

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

Monad m => Monad (BotPartT m) Source # 

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 #

fail :: String -> BotPartT m a #

Functor m => Functor (BotPartT m) Source # 

Methods

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

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

MonadFix m => MonadFix (BotPartT m) Source # 

Methods

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

Applicative m => Applicative (BotPartT m) Source # 

Methods

pure :: a -> BotPartT m a #

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

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

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

MonadIO m => MonadIO (BotPartT m) Source # 

Methods

liftIO :: IO a -> BotPartT m a #

Alternative m => Alternative (BotPartT m) Source # 

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] #

MonadPlus m => MonadPlus (BotPartT m) Source # 

Methods

mzero :: BotPartT m a #

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

MonadCont m => MonadCont (BotPartT m) Source # 

Methods

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

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

Methods

askBotEnv :: BotPartT m BotEnv Source #

askMessage :: BotPartT m Message Source #

askOutChan :: BotPartT m (Chan Message) Source #

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

sendMessage :: Message -> BotPartT m () Source #

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

whoami :: BotPartT m ByteString Source #

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

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 #