From df8c836bdb448cca3ffd4f91b1b74177d38bdd62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20B=C3=A4renz?= Date: Mon, 15 Sep 2025 10:29:32 +0200 Subject: [PATCH 1/2] Generalise MonadAccum instance for AccumT --- Control/Monad/Accum.hs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Control/Monad/Accum.hs b/Control/Monad/Accum.hs index b0f2273..8d06c09 100644 --- a/Control/Monad/Accum.hs +++ b/Control/Monad/Accum.hs @@ -109,7 +109,6 @@ import qualified Control.Monad.Trans.Writer.CPS as CPSWriter import qualified Control.Monad.Trans.Writer.Lazy as LazyWriter import qualified Control.Monad.Trans.Writer.Strict as StrictWriter import Data.Functor (($>)) -import Data.Functor.Identity (Identity) import Data.Kind (Type) -- | The capability to accumulate. This can be seen in one of two ways: @@ -160,7 +159,7 @@ class (Monoid w, Monad m) => MonadAccum w m | m -> w where {-# MINIMAL accum | look, add #-} -- | @since 2.3 -instance (Monoid w) => MonadAccum w (AccumT w Identity) where +instance (Monoid w, Monad m) => MonadAccum w (AccumT w m) where look = Accum.look add = Accum.add accum = Accum.accum From ac7c7daf22a68b8573936ddbaa46c686c34aacb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20B=C3=A4renz?= Date: Mon, 15 Sep 2025 10:32:36 +0200 Subject: [PATCH 2/2] Reexport Accum API --- Control/Monad/Accum.hs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Control/Monad/Accum.hs b/Control/Monad/Accum.hs index 8d06c09..d34a74f 100644 --- a/Control/Monad/Accum.hs +++ b/Control/Monad/Accum.hs @@ -83,6 +83,22 @@ module Control.Monad.Accum ( -- * Type class MonadAccum (..), + -- * The 'Accum' monad + Accum.Accum, + Accum.runAccum, + Accum.execAccum, + Accum.evalAccum, + Accum.mapAccum, + + -- * The 'AccumT' monad transformer + Accum.AccumT (..), + Accum.execAccumT, + Accum.evalAccumT, + Accum.mapAccumT, + Accum.readerToAccumT, + Accum.writerToAccumT, + Accum.accumToStateT, + -- * Lifting helper type LiftingAccum (..),