extensible-effects-1.7.1.1: An Alternative to Monad Transformers

Safe HaskellTrustworthy
LanguageHaskell98

Control.Eff.Choose

Description

Nondeterministic choice effect

Synopsis

Documentation

data Choose v Source

Nondeterministic choice

Constructors

forall a . Choose [a] (a -> v) 

Instances

choose :: Member Choose r => [a] -> Eff r a Source

choose lst non-deterministically chooses one value from the lst choose [] thus corresponds to failure

runChoice :: forall a r. Eff (Choose :> r) a -> Eff r [a] Source

Run a nondeterministic effect, returning all values.

mzero' :: Member Choose r => Eff r a Source

MonadPlus-like operators are expressible via choose

mplus' :: Member Choose r => Eff r a -> Eff r a -> Eff r a Source

MonadPlus-like operators are expressible via choose