Safe Haskell | None |
---|---|
Language | Haskell2010 |
A carrier for Accum
effects.
This carrier performs its append operations strictly and thus avoids the space leaks inherent in lazy writer monads.
These appends are left-associative; as such, []
is a poor choice of monoid for computations that entail many calls to tell
.
The Seq or DList monoids may be a superior choice.
Since: 1.1.2.0
Accum carrier
newtype AccumC w (m :: Type -> Type) a Source #
Since: 1.1.2.0
AccumC (w -> m (w, a)) |
Instances
Monoid w => MonadTrans (AccumC w) Source # | |
Defined in Control.Carrier.Accum.Strict | |
(MonadIO m, Monoid w) => MonadIO (AccumC w m) Source # | |
Defined in Control.Carrier.Accum.Strict | |
(Alternative m, Monad m, Monoid w) => Alternative (AccumC w m) Source # | |
(Monad m, Monoid w) => Applicative (AccumC w m) Source # | |
Defined in Control.Carrier.Accum.Strict | |
Functor m => Functor (AccumC w m) Source # | |
(Monad m, Monoid w) => Monad (AccumC w m) Source # | |
(MonadPlus m, Monoid w) => MonadPlus (AccumC w m) Source # | |
(MonadFail m, Monoid w) => MonadFail (AccumC w m) Source # | |
Defined in Control.Carrier.Accum.Strict | |
(MonadFix m, Monoid w) => MonadFix (AccumC w m) Source # | |
Defined in Control.Carrier.Accum.Strict | |
(Algebra sig m, Monoid w) => Algebra (Accum w :+: sig) (AccumC w m) Source # | |
Accum effect
module Control.Effect.Accum