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 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*

*Since: 1.0.0.0*

## Instances

MonadTrans CullC Source # | |

Defined in Control.Carrier.Cull.Church | |

Monad (CullC m) Source # | |

Functor (CullC m) Source # | |

MonadFix m => MonadFix (CullC m) Source # | Separate fixpoints are computed for each branch. |

Defined in Control.Carrier.Cull.Church | |

MonadFail m => MonadFail (CullC m) Source # | |

Defined in Control.Carrier.Cull.Church | |

Applicative (CullC m) Source # | |

MonadIO m => MonadIO (CullC m) Source # | |

Defined in Control.Carrier.Cull.Church | |

Alternative (CullC m) Source # | |

MonadPlus (CullC m) Source # | |

(Algebra sig m, Effect sig) => Algebra (Cull :+: (NonDet :+: sig)) (CullC m) Source # | |

# Cull effect

module Control.Effect.Cull

# NonDet effects

module Control.Effect.NonDet