HORIZON HASKELLDocslts/ghc-10.0.x8fef28d2026-11-02Search packagesCtrl K
Theme: |

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8fef28d · 2026-11-02

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").

Contents
  1. Choose carrier
  2. Choose effect
Synopsis

Choose carrier

newtypenewtype ChooseC (m :: Type -> Type) a

A 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.Church
  • Monad (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
  • Functor (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
  • MonadFix m => MonadFix (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church

    Separate fixpoints are computed for each branch.

  • MonadFail m => MonadFail (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
  • Applicative (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
  • MonadIO m => MonadIO (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church
  • Algebra sig m => Algebra (Choose :+: sig) (ChooseC m)Defined in fused-effects-1.1.2.7 · Control.Carrier.Choose.Church

Choose effect