deriving-trans-0.2.0.0: Derive monad type classes with DerivingVia
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Elevator

Documentation

newtype Elevator (t :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) (a :: Type) Source #

Constructors

Ascend 

Fields

Instances

Instances details
(Monad (t m), MonadTrans t, MonadBase b m) => MonadBase b (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

liftBase :: b α -> Elevator t m α #

(Monad (t m), MonadTransControl t, MonadBaseControl b m) => MonadBaseControl b (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Associated Types

type StM (Elevator t m) a #

Methods

liftBaseWith :: (RunInBase (Elevator t m) b -> b a) -> Elevator t m a #

restoreM :: StM (Elevator t m) a -> Elevator t m a #

(Monad (t m), MonadTransControl t, MonadWriter w m) => MonadWriter w (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

writer :: (a, w) -> Elevator t m a #

tell :: w -> Elevator t m () #

listen :: Elevator t m a -> Elevator t m (a, w) #

pass :: Elevator t m (a, w -> w) -> Elevator t m a #

(Monad (t m), MonadTrans t, MonadState s m) => MonadState s (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

get :: Elevator t m s #

put :: s -> Elevator t m () #

state :: (s -> (a, s)) -> Elevator t m a #

(Monad (t m), MonadTransControl t, MonadReader r m) => MonadReader r (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

ask :: Elevator t m r #

local :: (r -> r) -> Elevator t m a -> Elevator t m a #

reader :: (r -> a) -> Elevator t m a #

(Monad (t m), MonadTransControl t, MonadError e m) => MonadError e (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

throwError :: e -> Elevator t m a #

catchError :: Elevator t m a -> (e -> Elevator t m a) -> Elevator t m a #

Monad (t m) => Monad (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

(>>=) :: Elevator t m a -> (a -> Elevator t m b) -> Elevator t m b #

(>>) :: Elevator t m a -> Elevator t m b -> Elevator t m b #

return :: a -> Elevator t m a #

Functor (t m) => Functor (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

fmap :: (a -> b) -> Elevator t m a -> Elevator t m b #

(<$) :: a -> Elevator t m b -> Elevator t m a #

Applicative (t m) => Applicative (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

pure :: a -> Elevator t m a #

(<*>) :: Elevator t m (a -> b) -> Elevator t m a -> Elevator t m b #

liftA2 :: (a -> b -> c) -> Elevator t m a -> Elevator t m b -> Elevator t m c #

(*>) :: Elevator t m a -> Elevator t m b -> Elevator t m b #

(<*) :: Elevator t m a -> Elevator t m b -> Elevator t m a #

(Monad (t m), MonadTrans t, MonadIO m) => MonadIO (Elevator t m) Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

Methods

liftIO :: IO a -> Elevator t m a #

type StM (Elevator t m) a Source # 
Instance details

Defined in Control.Monad.Trans.Elevator

type StM (Elevator t m) a = StM m (StT t a)