Skip to content

Commit a9509bc

Browse files
authored
Merge pull request #168 from turion/dev_monad_accum_instance
Generalise MonadAccum instance for AccumT
2 parents 9282a44 + ac7c7da commit a9509bc

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

Control/Monad/Accum.hs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,22 @@ module Control.Monad.Accum
8383
( -- * Type class
8484
MonadAccum (..),
8585

86+
-- * The 'Accum' monad
87+
Accum.Accum,
88+
Accum.runAccum,
89+
Accum.execAccum,
90+
Accum.evalAccum,
91+
Accum.mapAccum,
92+
93+
-- * The 'AccumT' monad transformer
94+
Accum.AccumT (..),
95+
Accum.execAccumT,
96+
Accum.evalAccumT,
97+
Accum.mapAccumT,
98+
Accum.readerToAccumT,
99+
Accum.writerToAccumT,
100+
Accum.accumToStateT,
101+
86102
-- * Lifting helper type
87103
LiftingAccum (..),
88104

@@ -109,7 +125,6 @@ import qualified Control.Monad.Trans.Writer.CPS as CPSWriter
109125
import qualified Control.Monad.Trans.Writer.Lazy as LazyWriter
110126
import qualified Control.Monad.Trans.Writer.Strict as StrictWriter
111127
import Data.Functor (($>))
112-
import Data.Functor.Identity (Identity)
113128
import Data.Kind (Type)
114129

115130
-- | The capability to accumulate. This can be seen in one of two ways:
@@ -160,7 +175,7 @@ class (Monoid w, Monad m) => MonadAccum w m | m -> w where
160175
{-# MINIMAL accum | look, add #-}
161176

162177
-- | @since 2.3
163-
instance (Monoid w) => MonadAccum w (AccumT w Identity) where
178+
instance (Monoid w, Monad m) => MonadAccum w (AccumT w m) where
164179
look = Accum.look
165180
add = Accum.add
166181
accum = Accum.accum

0 commit comments

Comments
 (0)