| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Control.Monad.Trans.Unlift
Description
See overview in the README.md
- class (MonadTransControl t, Forall (Identical t)) => MonadTransUnlift t
- newtype Unlift t = Unlift {}
- askUnlift :: forall t m. (MonadTransUnlift t, Monad m) => t m (Unlift t)
- askRun :: (MonadTransUnlift t, Monad (t m), Monad m) => t m (t m a -> m a)
- class (MonadBaseControl b m, Forall (IdenticalBase m)) => MonadBaseUnlift b m | m -> b
- newtype UnliftBase b m = UnliftBase {
- unliftBase :: forall a. m a -> b a
- askUnliftBase :: forall b m. MonadBaseUnlift b m => m (UnliftBase b m)
- askRunBase :: MonadBaseUnlift b m => m (m a -> b a)
- class MonadTrans t where
- class (Applicative b, Applicative m, Monad b, Monad m) => MonadBase b m | m -> b where
- liftBase :: b α -> m α
- class MonadTrans t => MonadTransControl t where
- class MonadBase b m => MonadBaseControl b m | m -> b where
- type StM m a :: *
- liftBaseWith :: (RunInBase m b -> b a) -> m a
- restoreM :: StM m a -> m a
Trans
class (MonadTransControl t, Forall (Identical t)) => MonadTransUnlift t Source
A monad transformer which can be unlifted, obeying the monad morphism laws.
Since 0.1.0
Instances
| (MonadTransControl t, Forall (Identical t)) => MonadTransUnlift t |
A function which can move an action down the monad transformer stack, by providing any necessary environment to the action.
Note that, if ImpredicativeTypes worked reliably, this type wouldn't be
necessary, and askUnlift would simply include a more generalized type.
Since 0.1.0
askUnlift :: forall t m. (MonadTransUnlift t, Monad m) => t m (Unlift t) Source
Get the Unlift action for the current transformer layer.
Since 0.1.0
askRun :: (MonadTransUnlift t, Monad (t m), Monad m) => t m (t m a -> m a) Source
A simplified version of askUnlift which addresses the common case where
polymorphism isn't necessary.
Since 0.1.0
Base
class (MonadBaseControl b m, Forall (IdenticalBase m)) => MonadBaseUnlift b m | m -> b Source
A monad transformer stack which can be unlifted, obeying the monad morphism laws.
Since 0.1.0
Instances
| (MonadBaseControl b m, Forall (IdenticalBase m)) => MonadBaseUnlift b m |
newtype UnliftBase b m Source
Similar to Unlift, but instead of moving one layer down the stack, moves
the action to the base monad.
Since 0.1.0
Constructors
| UnliftBase | |
Fields
| |
askUnliftBase :: forall b m. MonadBaseUnlift b m => m (UnliftBase b m) Source
Get the UnliftBase action for the current transformer stack.
Since 0.1.0
askRunBase :: MonadBaseUnlift b m => m (m a -> b a) Source
A simplified version of askUnliftBase which addresses the common case
where polymorphism isn't necessary.
Since 0.1.0
Reexports
class MonadTrans t where
The class of monad transformers. Instances should satisfy the
following laws, which state that lift is a transformer of monads:
Methods
lift :: Monad m => m a -> t m a
Lift a computation from the argument monad to the constructed monad.
Instances
| MonadTrans MaybeT | |
| MonadTrans ListT | |
| MonadTrans IdentityT | |
| Monoid w => MonadTrans (WriterT w) | |
| Monoid w => MonadTrans (WriterT w) | |
| MonadTrans (StateT s) | |
| MonadTrans (StateT s) | |
| MonadTrans (ReaderT r) | |
| Error e => MonadTrans (ErrorT e) | |
| MonadTrans (ContT r) | |
| MonadTrans (ExceptT e) | |
| MonadTrans (StateRefT ref s) | |
| MonadTrans (WriterRefT ref w) | |
| Monoid w => MonadTrans (RWST r w s) | |
| Monoid w => MonadTrans (RWST r w s) | |
| MonadTrans (RWSRefT refw refs r w s) |
class (Applicative b, Applicative m, Monad b, Monad m) => MonadBase b m | m -> b where
Methods
liftBase :: b α -> m α
Instances
| MonadBase [] [] | |
| MonadBase IO IO | |
| MonadBase STM STM | |
| MonadBase Maybe Maybe | |
| MonadBase Identity Identity | |
| MonadBase b m => MonadBase b (MaybeT m) | |
| MonadBase b m => MonadBase b (ListT m) | |
| MonadBase b m => MonadBase b (IdentityT m) | |
| (Monoid w, MonadBase b m) => MonadBase b (WriterT w m) | |
| (Monoid w, MonadBase b m) => MonadBase b (WriterT w m) | |
| MonadBase b m => MonadBase b (StateT s m) | |
| MonadBase b m => MonadBase b (StateT s m) | |
| MonadBase b m => MonadBase b (ReaderT r m) | |
| MonadBase b m => MonadBase b (ExceptT e m) | |
| (Error e, MonadBase b m) => MonadBase b (ErrorT e m) | |
| MonadBase b m => MonadBase b (ContT r m) | |
| MonadBase b m => MonadBase b (StateRefT ref s m) | |
| MonadBase b m => MonadBase b (WriterRefT ref w m) | |
| (Monoid w, MonadBase b m) => MonadBase b (RWST r w s m) | |
| (Monoid w, MonadBase b m) => MonadBase b (RWST r w s m) | |
| MonadBase b m => MonadBase b (RWSRefT refw refs r w s m) | |
| MonadBase ((->) r) ((->) r) | |
| MonadBase (Either e) (Either e) | |
| MonadBase (ST s) (ST s) | |
| MonadBase (ST s) (ST s) |
class MonadTrans t => MonadTransControl t where
Associated Types
type StT t a :: *
Instances
| MonadTransControl MaybeT | |
| MonadTransControl ListT | |
| MonadTransControl IdentityT | |
| Monoid w => MonadTransControl (WriterT w) | |
| Monoid w => MonadTransControl (WriterT w) | |
| MonadTransControl (StateT s) | |
| MonadTransControl (StateT s) | |
| MonadTransControl (ReaderT r) | |
| Error e => MonadTransControl (ErrorT e) | |
| MonadTransControl (ExceptT e) | |
| MonadTransControl (StateRefT ref s) | |
| MonadTransControl (WriterRefT ref w) | |
| Monoid w => MonadTransControl (RWST r w s) | |
| Monoid w => MonadTransControl (RWST r w s) | |
| MonadTransControl (RWSRefT refw refs r w s) |
class MonadBase b m => MonadBaseControl b m | m -> b where
Associated Types
type StM m a :: *
Instances