Portability | ghc |
---|---|
Stability | experimental |
Maintainer | nickolay.kudasov@gmail.com |
Safe Haskell | Trustworthy |
Internals of the Demarcate
monad transformer.
- data DemarcateF t m next
- = forall a . DemarcateMonad (m a) (a -> next)
- | forall a . DemarcateTrans (t m a) (a -> next)
- newtype Demarcate t m a = Demarcate {
- unDemarcate :: Free (DemarcateF t m) a
- demarcateM :: m a -> Demarcate t m a
- demarcateT :: t m a -> Demarcate t m a
- execDemarcate :: (Monad (t m), Monad m, MonadTrans t) => Demarcate t m a -> t m a
- hoistDemarcateT :: (forall b. t m b -> t' m b) -> Demarcate t m a -> Demarcate t' m a
- transformDemarcateM :: (forall b. m b -> Demarcate t m b) -> Demarcate t m a -> Demarcate t m a
- transformDemarcateFree :: Functor f => (forall b. f (Demarcate t (Free f) b) -> Demarcate t (Free f) b) -> Demarcate t (Free f) a -> Demarcate t (Free f) a
- wrapT :: (Functor f, MonadFree f m, MonadTrans t, Monad (t m)) => f (t m a) -> t m a
Documentation
data DemarcateF t m next Source
Demarcate functor.
forall a . DemarcateMonad (m a) (a -> next) | Unlifted monadic computation. |
forall a . DemarcateTrans (t m a) (a -> next) | Transformed monadic computation. |
Functor (DemarcateF t m) | |
MonadFree (DemarcateF t m) (Demarcate t m) |
newtype Demarcate t m a Source
Demarcate monad transformer.
Demarcate | |
|
MonadTrans (Demarcate t) | |
Monad (Demarcate t m) | |
Functor (Demarcate t m) | |
MonadFree (DemarcateF t m) (Demarcate t m) |
demarcateM :: m a -> Demarcate t m aSource
Lift pure monadic computation into Demarcate t m a
demarcateT :: t m a -> Demarcate t m aSource
Lift transformed monadic computation into Demarcate t m a
execDemarcate :: (Monad (t m), Monad m, MonadTrans t) => Demarcate t m a -> t m aSource
Execute demarcated computation.
hoistDemarcateT :: (forall b. t m b -> t' m b) -> Demarcate t m a -> Demarcate t' m aSource
Subsitute monad transformer.
transformDemarcateM :: (forall b. m b -> Demarcate t m b) -> Demarcate t m a -> Demarcate t m aSource
Substitute monad computations with demarcated.