Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 | |
MonadIO m => MonadIO (CullC m) 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 | |
Algebra sig m => Algebra (Cull :+: (NonDet :+: sig)) (CullC m) Source # | |
Cull effect
module Control.Effect.Cull
NonDet effects
module Control.Effect.NonDet