xhb-monad-0.1

Safe HaskellNone
LanguageHaskell98

Graphics.XHB.Monad

Documentation

newtype X m a Source #

Constructors

X 

Instances

MonadTrans X Source # 

Methods

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

MonadError e m => MonadError e (X m) Source # 

Methods

throwError :: e -> X m a #

catchError :: X m a -> (e -> X m a) -> X m a #

MonadReader r m => MonadReader r (X m) Source # 

Methods

ask :: X m r #

local :: (r -> r) -> X m a -> X m a #

reader :: (r -> a) -> X m a #

MonadState s m => MonadState s (X m) Source # 

Methods

get :: X m s #

put :: s -> X m () #

state :: (s -> (a, s)) -> X m a #

MonadWriter w m => MonadWriter w (X m) Source # 

Methods

writer :: (a, w) -> X m a #

tell :: w -> X m () #

listen :: X m a -> X m (a, w) #

pass :: X m (a, w -> w) -> X m a #

XContext x => MonadX x (X x) Source # 

Methods

liftX :: x a -> X x a Source #

askX :: X x Connection Source #

catchErrorX :: X x a -> (SomeError -> X x a) -> X x a Source #

throwErrorX :: SomeError -> X x a Source #

Monad m => Monad (X m) Source # 

Methods

(>>=) :: X m a -> (a -> X m b) -> X m b #

(>>) :: X m a -> X m b -> X m b #

return :: a -> X m a #

fail :: String -> X m a #

Functor m => Functor (X m) Source # 

Methods

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

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

Monad m => Applicative (X m) Source # 

Methods

pure :: a -> X m a #

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

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

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

MonadIO m => MonadIO (X m) Source # 

Methods

liftIO :: IO a -> X m a #

unX :: X m a -> Connection -> m (Either SomeError a) Source #

toX :: (Connection -> m (Either SomeError a)) -> X m a Source #

class (XContext x, Monad m) => MonadX x m | m -> x where Source #

Minimal complete definition

liftX, askX, catchErrorX, throwErrorX

Methods

liftX :: x a -> m a Source #

askX :: m Connection Source #

catchErrorX :: m a -> (SomeError -> m a) -> m a Source #

throwErrorX :: SomeError -> m a Source #

Instances

MonadX x m => MonadX x (MaybeT m) Source # 
MonadX x m => MonadX x (ListT m) Source # 

Methods

liftX :: x a -> ListT m a Source #

askX :: ListT m Connection Source #

catchErrorX :: ListT m a -> (SomeError -> ListT m a) -> ListT m a Source #

throwErrorX :: SomeError -> ListT m a Source #

XContext x => MonadX x (X x) Source # 

Methods

liftX :: x a -> X x a Source #

askX :: X x Connection Source #

catchErrorX :: X x a -> (SomeError -> X x a) -> X x a Source #

throwErrorX :: SomeError -> X x a Source #

(Monoid w, MonadX x m) => MonadX x (WriterT w m) Source # 

Methods

liftX :: x a -> WriterT w m a Source #

askX :: WriterT w m Connection Source #

catchErrorX :: WriterT w m a -> (SomeError -> WriterT w m a) -> WriterT w m a Source #

throwErrorX :: SomeError -> WriterT w m a Source #

(Monoid w, MonadX x m) => MonadX x (WriterT w m) Source # 

Methods

liftX :: x a -> WriterT w m a Source #

askX :: WriterT w m Connection Source #

catchErrorX :: WriterT w m a -> (SomeError -> WriterT w m a) -> WriterT w m a Source #

throwErrorX :: SomeError -> WriterT w m a Source #

MonadX x m => MonadX x (StateT s m) Source # 

Methods

liftX :: x a -> StateT s m a Source #

askX :: StateT s m Connection Source #

catchErrorX :: StateT s m a -> (SomeError -> StateT s m a) -> StateT s m a Source #

throwErrorX :: SomeError -> StateT s m a Source #

MonadX x m => MonadX x (StateT s m) Source # 

Methods

liftX :: x a -> StateT s m a Source #

askX :: StateT s m Connection Source #

catchErrorX :: StateT s m a -> (SomeError -> StateT s m a) -> StateT s m a Source #

throwErrorX :: SomeError -> StateT s m a Source #

MonadX x m => MonadX x (IdentityT * m) Source # 
MonadX x m => MonadX x (ExceptT e m) Source # 

Methods

liftX :: x a -> ExceptT e m a Source #

askX :: ExceptT e m Connection Source #

catchErrorX :: ExceptT e m a -> (SomeError -> ExceptT e m a) -> ExceptT e m a Source #

throwErrorX :: SomeError -> ExceptT e m a Source #

MonadX x m => MonadX x (ReaderT * r m) Source # 

Methods

liftX :: x a -> ReaderT * r m a Source #

askX :: ReaderT * r m Connection Source #

catchErrorX :: ReaderT * r m a -> (SomeError -> ReaderT * r m a) -> ReaderT * r m a Source #

throwErrorX :: SomeError -> ReaderT * r m a Source #

asksX :: MonadX x m => (Connection -> a) -> m a Source #

notify :: (MonadX x m, Request a) => a -> m () Source #

reqAsync :: (MonadX x m, RequestWithReply a b) => a -> m (m b) Source #

req :: (MonadX x m, RequestWithReply a b) => a -> m b Source #

newtype WithReply x a Source #

Constructors

WithReply 

Fields

Instances

Functor x => Functor (WithReply x) Source # 

Methods

fmap :: (a -> b) -> WithReply x a -> WithReply x b #

(<$) :: a -> WithReply x b -> WithReply x a #

Monad x => Applicative (WithReply x) Source # 

Methods

pure :: a -> WithReply x a #

(<*>) :: WithReply x (a -> b) -> WithReply x a -> WithReply x b #

(*>) :: WithReply x a -> WithReply x b -> WithReply x b #

(<*) :: WithReply x a -> WithReply x b -> WithReply x a #

(<$-) :: (XContext x, RequestWithReply a b) => (b -> c) -> a -> WithReply x c infixl 5 Source #

(<*-) :: (XContext x, RequestWithReply a b) => WithReply x (b -> c) -> a -> WithReply x c infixl 5 Source #

doX :: MonadX x m => WithReply x a -> m a Source #