deriving-trans-0.1.0.0: Derive transformer type classes with DerivingVia
Safe HaskellNone
LanguageHaskell2010

Control.Monad.Trans.Deriving

Documentation

newtype Stack0T (m :: Type -> Type) (a :: Type) Source #

Constructors

Stack0T 

Fields

Instances

Instances details
MonadTrans Stack0T Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

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

MonadTransControl Stack0T Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StT Stack0T a #

Methods

liftWith :: Monad m => (Run Stack0T -> m a) -> Stack0T m a #

restoreT :: Monad m => m (StT Stack0T a) -> Stack0T m a #

MonadBase b m => MonadBase b (Stack0T m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

liftBase :: b α -> Stack0T m α #

MonadBaseControl b m => MonadBaseControl b (Stack0T m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StM (Stack0T m) a #

Methods

liftBaseWith :: (RunInBase (Stack0T m) b -> b a) -> Stack0T m a #

restoreM :: StM (Stack0T m) a -> Stack0T m a #

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

Defined in Control.Monad.Trans.Deriving

Methods

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

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

return :: a -> Stack0T m a #

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

Defined in Control.Monad.Trans.Deriving

Methods

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

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

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

Defined in Control.Monad.Trans.Deriving

Methods

pure :: a -> Stack0T m a #

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

liftA2 :: (a -> b -> c) -> Stack0T m a -> Stack0T m b -> Stack0T m c #

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

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

type StT Stack0T a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StT Stack0T a = a
type StM (Stack0T m) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StM (Stack0T m) a = StM m a

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

Constructors

Stack1T 

Fields

Instances

Instances details
MonadBase b (t m) => MonadBase b (Stack1T t m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

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

MonadBaseControl b (t m) => MonadBaseControl b (Stack1T t m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StM (Stack1T t m) a #

Methods

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

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

MonadTrans t => MonadTrans (Stack1T t) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

lift :: Monad m => m a -> Stack1T t m a #

MonadTransControl t => MonadTransControl (Stack1T t) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StT (Stack1T t) a #

Methods

liftWith :: Monad m => (Run (Stack1T t) -> m a) -> Stack1T t m a #

restoreT :: Monad m => m (StT (Stack1T t) a) -> Stack1T t m a #

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

Defined in Control.Monad.Trans.Deriving

Methods

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

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

return :: a -> Stack1T t m a #

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

Defined in Control.Monad.Trans.Deriving

Methods

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

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

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

Defined in Control.Monad.Trans.Deriving

Methods

pure :: a -> Stack1T t m a #

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

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

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

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

type StT (Stack1T t) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StT (Stack1T t) a = StT t a
type StM (Stack1T t m) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StM (Stack1T t m) a = StM (t m) a

newtype Stack2T (t1 :: (Type -> Type) -> Type -> Type) (t2 :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) (a :: Type) Source #

Constructors

Stack2T 

Fields

Instances

Instances details
MonadBase b (t1 (t2 m)) => MonadBase b (Stack2T t1 t2 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

liftBase :: b α -> Stack2T t1 t2 m α #

MonadBaseControl b (t1 (t2 m)) => MonadBaseControl b (Stack2T t1 t2 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StM (Stack2T t1 t2 m) a #

Methods

liftBaseWith :: (RunInBase (Stack2T t1 t2 m) b -> b a) -> Stack2T t1 t2 m a #

restoreM :: StM (Stack2T t1 t2 m) a -> Stack2T t1 t2 m a #

(forall (m :: Type -> Type). Monad m => Monad (t2 m), MonadTrans t1, MonadTrans t2) => MonadTrans (Stack2T t1 t2) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

lift :: Monad m => m a -> Stack2T t1 t2 m a #

(forall (m :: Type -> Type). Monad m => Monad (t2 m), MonadTransControl t1, MonadTransControl t2) => MonadTransControl (Stack2T t1 t2) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StT (Stack2T t1 t2) a #

Methods

liftWith :: Monad m => (Run (Stack2T t1 t2) -> m a) -> Stack2T t1 t2 m a #

restoreT :: Monad m => m (StT (Stack2T t1 t2) a) -> Stack2T t1 t2 m a #

Monad (t1 (t2 m)) => Monad (Stack2T t1 t2 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

(>>=) :: Stack2T t1 t2 m a -> (a -> Stack2T t1 t2 m b) -> Stack2T t1 t2 m b #

(>>) :: Stack2T t1 t2 m a -> Stack2T t1 t2 m b -> Stack2T t1 t2 m b #

return :: a -> Stack2T t1 t2 m a #

Functor (t1 (t2 m)) => Functor (Stack2T t1 t2 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

fmap :: (a -> b) -> Stack2T t1 t2 m a -> Stack2T t1 t2 m b #

(<$) :: a -> Stack2T t1 t2 m b -> Stack2T t1 t2 m a #

Applicative (t1 (t2 m)) => Applicative (Stack2T t1 t2 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

pure :: a -> Stack2T t1 t2 m a #

(<*>) :: Stack2T t1 t2 m (a -> b) -> Stack2T t1 t2 m a -> Stack2T t1 t2 m b #

liftA2 :: (a -> b -> c) -> Stack2T t1 t2 m a -> Stack2T t1 t2 m b -> Stack2T t1 t2 m c #

(*>) :: Stack2T t1 t2 m a -> Stack2T t1 t2 m b -> Stack2T t1 t2 m b #

(<*) :: Stack2T t1 t2 m a -> Stack2T t1 t2 m b -> Stack2T t1 t2 m a #

type StT (Stack2T t1 t2) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StT (Stack2T t1 t2) a = StT t2 (StT t1 a)
type StM (Stack2T t1 t2 m) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StM (Stack2T t1 t2 m) a = StM (t1 (t2 m)) a

newtype Stack3T (t1 :: (Type -> Type) -> Type -> Type) (t2 :: (Type -> Type) -> Type -> Type) (t3 :: (Type -> Type) -> Type -> Type) (m :: Type -> Type) (a :: Type) Source #

Constructors

Stack3T 

Fields

Instances

Instances details
MonadBase b (t1 (t2 (t3 m))) => MonadBase b (Stack3T t1 t2 t3 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

liftBase :: b α -> Stack3T t1 t2 t3 m α #

MonadBaseControl b (t1 (t2 (t3 m))) => MonadBaseControl b (Stack3T t1 t2 t3 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StM (Stack3T t1 t2 t3 m) a #

Methods

liftBaseWith :: (RunInBase (Stack3T t1 t2 t3 m) b -> b a) -> Stack3T t1 t2 t3 m a #

restoreM :: StM (Stack3T t1 t2 t3 m) a -> Stack3T t1 t2 t3 m a #

(forall (m :: Type -> Type). Monad m => Monad (t3 m), forall (m :: Type -> Type). Monad m => Monad (t2 (t3 m)), MonadTrans t1, MonadTrans t2, MonadTrans t3) => MonadTrans (Stack3T t1 t2 t3) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

lift :: Monad m => m a -> Stack3T t1 t2 t3 m a #

(forall (m :: Type -> Type). Monad m => Monad (t3 m), forall (m :: Type -> Type). Monad m => Monad (t2 (t3 m)), MonadTransControl t1, MonadTransControl t2, MonadTransControl t3) => MonadTransControl (Stack3T t1 t2 t3) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Associated Types

type StT (Stack3T t1 t2 t3) a #

Methods

liftWith :: Monad m => (Run (Stack3T t1 t2 t3) -> m a) -> Stack3T t1 t2 t3 m a #

restoreT :: Monad m => m (StT (Stack3T t1 t2 t3) a) -> Stack3T t1 t2 t3 m a #

Monad (t1 (t2 (t3 m))) => Monad (Stack3T t1 t2 t3 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

(>>=) :: Stack3T t1 t2 t3 m a -> (a -> Stack3T t1 t2 t3 m b) -> Stack3T t1 t2 t3 m b #

(>>) :: Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b -> Stack3T t1 t2 t3 m b #

return :: a -> Stack3T t1 t2 t3 m a #

Functor (t1 (t2 (t3 m))) => Functor (Stack3T t1 t2 t3 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

fmap :: (a -> b) -> Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b #

(<$) :: a -> Stack3T t1 t2 t3 m b -> Stack3T t1 t2 t3 m a #

Applicative (t1 (t2 (t3 m))) => Applicative (Stack3T t1 t2 t3 m) Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

Methods

pure :: a -> Stack3T t1 t2 t3 m a #

(<*>) :: Stack3T t1 t2 t3 m (a -> b) -> Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b #

liftA2 :: (a -> b -> c) -> Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b -> Stack3T t1 t2 t3 m c #

(*>) :: Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b -> Stack3T t1 t2 t3 m b #

(<*) :: Stack3T t1 t2 t3 m a -> Stack3T t1 t2 t3 m b -> Stack3T t1 t2 t3 m a #

type StT (Stack3T t1 t2 t3) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StT (Stack3T t1 t2 t3) a = StT t3 (StT t2 (StT t1 a))
type StM (Stack3T t1 t2 t3 m) a Source # 
Instance details

Defined in Control.Monad.Trans.Deriving

type StM (Stack3T t1 t2 t3 m) a = StM (t1 (t2 (t3 m))) a