Safe Haskell | None |
---|---|
Language | Haskell2010 |
Control.Monad.Trans.Rerunnable
Description
Defines the MonadRerunnableTrans
type class that is functionally equivalent
to MonadTrans
, but use of it requires the user to
explicitly acknowledge that lifting the given action can be rerun.
Synopsis
- class MonadRerunnableTrans (t :: (Type -> Type) -> Type -> Type) where
- rerunnableLift :: Monad m => m a -> t m a
Documentation
class MonadRerunnableTrans (t :: (Type -> Type) -> Type -> Type) where Source #
A copy of MonadTrans
to explicitly allow only
lifting actions that are rerunnable, e.g. in the context of a SQL transaction.
Methods
rerunnableLift :: Monad m => m a -> t m a Source #
Lift the given action.
The given action may be rerun, so use of this function requires manually verifying that the given action is rerunnable.