An effect allowing writes to an accumulated quantity alongside a computed value,
and reads from the accumulator.
An Accumw effect keeps track of a monoidal datum of type w and strictly appends to that monoidal value with the add effect.
Previous writes to that value can be read with the look effect.
Control.Carrier.Accum.Strict. (A lazy carrier is not provided due to the inherent space leaks associated with lazy accumulation monads, similar to lazy writer monads.)
If Accumw is the last effect in a stack, it can be interpreted to a function w -> (w, a) given some result type a and the presence of a Monoid instance for w.
AlgebraNonDet []Defined in fused-effects-1.1.2.7 · Control.Algebra
Algebrasigm => Algebrasig (Choosingm)Defined in fused-effects-1.1.2.7 · Control.Effect.Choose
Algebrasigm => Algebrasig (Apm)Defined in fused-effects-1.1.2.7 · Control.Algebra
This instance permits effectful actions to be lifted into the Ap monad
given a monoidal return type, which can provide clarity when chaining calls
to mappend.
mappend <$> act1 <*> (mappend <$> act2 <*> act3)
is equivalent to
getAp (act1 <> act2 <> act3)
Algebrasigm => Algebrasig (Altm)Defined in fused-effects-1.1.2.7 · Control.Algebra
This instance permits effectful actions to be lifted into the Alt monad,
which eases the invocation of repeated alternation with <|>:
Note that if eff is a sum, it will be decomposed into multiple Member constraints. While this technically allows one to combine multiple unrelated effects into a single Has constraint, doing so has two significant drawbacks: