Safe Haskell | None |
---|---|

Language | Haskell2010 |

## Synopsis

- runCut :: (a -> m b -> m b) -> m b -> m b -> CutC m a -> m b
- runCutA :: (Alternative f, Applicative m) => CutC m a -> m (f a)
- runCutM :: (Applicative m, Monoid b) => (a -> b) -> CutC m a -> m b
- newtype CutC m a = CutC (forall b. (a -> m b -> m b) -> m b -> m b -> m b)
- module Control.Effect.Cut
- module Control.Effect.NonDet

# Cut carrier

runCutA :: (Alternative f, Applicative m) => CutC m a -> m (f a) Source #

Run a `Cut`

effect, returning all its results in an `Alternative`

collection.

*Since: 1.0.0.0*

*Since: 1.0.0.0*

CutC (forall b. (a -> m b -> m b) -> m b -> m b -> m b) |

## Instances

MonadTrans CutC Source # | |

Defined in Control.Carrier.Cut.Church | |

Monad (CutC m) Source # | |

Functor (CutC m) Source # | |

MonadFix m => MonadFix (CutC m) Source # | A single fixpoint is shared between all branches. |

Defined in Control.Carrier.Cut.Church | |

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

Defined in Control.Carrier.Cut.Church | |

Applicative (CutC m) Source # | |

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

Defined in Control.Carrier.Cut.Church | |

Alternative (CutC m) Source # | |

MonadPlus (CutC m) Source # | |

(Algebra sig m, Effect sig) => Algebra (Cut :+: (NonDet :+: sig)) (CutC m) Source # | |

# Cut effect

module Control.Effect.Cut

# NonDet effects

module Control.Effect.NonDet