| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Control.Carrier.Cull.Church
Synopsis
- runCull :: (m b -> m b -> m b) -> (a -> m b) -> m b -> CullC m a -> m b
- runCullA :: (Alternative f, Applicative m) => CullC m a -> m (f a)
- runCullM :: (Applicative m, Monoid b) => (a -> b) -> CullC m a -> m b
- newtype CullC (m :: Type -> Type) a = CullC (ReaderC Bool (NonDetC m) a)
- module Control.Effect.Cull
- module Control.Effect.NonDet
Cull carrier
runCullA :: (Alternative f, Applicative m) => CullC m a -> m (f a) Source #
Run a Cull effect, interpreting the result into an Alternative functor. Choice is handled with <|>, embedding with pure, and failure with empty.
Since: 1.0.0.0
newtype CullC (m :: Type -> Type) a Source #
Since: 1.0.0.0
Instances
| MonadTrans CullC Source # | |
Defined in Control.Carrier.Cull.Church | |
| Alternative (CullC m) Source # | |
| Applicative (CullC m) Source # | |
| Functor (CullC m) Source # | |
| Monad (CullC m) Source # | |
| MonadPlus (CullC m) Source # | |
| MonadFail m => MonadFail (CullC m) Source # | |
Defined in Control.Carrier.Cull.Church | |
| MonadFix m => MonadFix (CullC m) Source # | Separate fixpoints are computed for each branch. |
Defined in Control.Carrier.Cull.Church | |
| MonadIO m => MonadIO (CullC m) Source # | |
Defined in Control.Carrier.Cull.Church | |
| Algebra sig m => Algebra (Cull :+: (NonDet :+: sig)) (CullC m) Source # | |
Cull effect
module Control.Effect.Cull
NonDet effects
module Control.Effect.NonDet