Modulefused-effects-1.1.2.7Haskell2010
Control.Carrier.Choose.Church
A carrier for Choose effects (nondeterminism without failure).
Under the hood, it uses a Church-encoded binary tree to avoid the problems associated with a naïve list-based implementation (see "ListT done right").
- 1 type
- 2 values
- Packagefused-effects-1.1.2.7
- Exports3
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceChurch.hs
Choose carrier
3 declarationsA carrier for Choose effects based on Ralf Hinze’s design described in Deriving Backtracking Monad Transformers.
Constructors
ChooseC (forall b. (m b -> m b -> m b) -> (a -> m b) -> m b)
Instances8MonadTrans, Monad, Functor, MonadFix, MonadFail, Applicative, …
MonadTrans ChooseCDefined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchMonad (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchFunctor (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchMonadFix m => MonadFix (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchSeparate fixpoints are computed for each branch.
MonadFail m => MonadFail (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchApplicative (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchMonadIO m => MonadIO (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.ChurchAlgebra sig m => Algebra (Choose :+: sig) (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
Choose effect
0 declarationsmodule Control.Effect.Choose