@@ -62,7 +62,6 @@ import Control.Monad
6262import qualified Control.Monad.Fail as Fail
6363import Control.Monad.Fix
6464import Control.Monad.Signatures
65- import Data.Monoid
6665#ifdef __GLASGOW_HASKELL__
6766import GHC.Generics
6867#endif
@@ -106,7 +105,7 @@ execAccum m w = snd (runAccum m w)
106105-- and return the final value, discarding the final output.
107106--
108107-- * @'evalAccum' m w = 'fst' ('runAccum' m w)@
109- evalAccum :: ( Monoid w ) => Accum w a -> w -> a
108+ evalAccum :: Accum w a -> w -> a
110109evalAccum m w = fst (runAccum m w)
111110{-# INLINE evalAccum #-}
112111
@@ -164,7 +163,7 @@ execAccumT m w = do
164163-- history and return the final value, discarding the final output.
165164--
166165-- * @'evalAccumT' m w = 'liftM' 'fst' ('runAccumT' m w)@
167- evalAccumT :: (Monad m , Monoid w ) => AccumT w m a -> w -> m a
166+ evalAccumT :: (Monad m ) => AccumT w m a -> w -> m a
168167evalAccumT m w = do
169168 ~ (a, _) <- runAccumT m w
170169 return a
@@ -182,7 +181,7 @@ instance (Functor m) => Functor (AccumT w m) where
182181 fmap f = mapAccumT $ fmap $ \ ~ (a, w) -> (f a, w)
183182 {-# INLINE fmap #-}
184183
185- instance (Monoid w , Functor m , Monad m ) => Applicative (AccumT w m ) where
184+ instance (Monoid w , Monad m ) => Applicative (AccumT w m ) where
186185 pure a = AccumT $ const $ return (a, mempty )
187186 {-# INLINE pure #-}
188187 mf <*> mv = AccumT $ \ w -> do
@@ -191,13 +190,13 @@ instance (Monoid w, Functor m, Monad m) => Applicative (AccumT w m) where
191190 return (f v, w' `mappend` w'')
192191 {-# INLINE (<*>) #-}
193192
194- instance (Monoid w , Functor m , MonadPlus m ) => Alternative (AccumT w m ) where
193+ instance (Monoid w , MonadPlus m ) => Alternative (AccumT w m ) where
195194 empty = AccumT $ const mzero
196195 {-# INLINE empty #-}
197196 m <|> n = AccumT $ \ w -> runAccumT m w `mplus` runAccumT n w
198197 {-# INLINE (<|>) #-}
199198
200- instance (Monoid w , Functor m , Monad m ) => Monad (AccumT w m ) where
199+ instance (Monoid w , Monad m ) => Monad (AccumT w m ) where
201200 m >>= k = AccumT $ \ w -> do
202201 ~ (a, w') <- runAccumT m w
203202 ~ (b, w'') <- runAccumT (k a) (w `mappend` w')
@@ -208,13 +207,13 @@ instance (Monoid w, Fail.MonadFail m) => Fail.MonadFail (AccumT w m) where
208207 fail msg = AccumT $ const (Fail. fail msg)
209208 {-# INLINE fail #-}
210209
211- instance (Monoid w , Functor m , MonadPlus m ) => MonadPlus (AccumT w m ) where
210+ instance (Monoid w , MonadPlus m ) => MonadPlus (AccumT w m ) where
212211 mzero = AccumT $ const mzero
213212 {-# INLINE mzero #-}
214213 m `mplus` n = AccumT $ \ w -> runAccumT m w `mplus` runAccumT n w
215214 {-# INLINE mplus #-}
216215
217- instance (Monoid w , Functor m , MonadFix m ) => MonadFix (AccumT w m ) where
216+ instance (Monoid w , MonadFix m ) => MonadFix (AccumT w m ) where
218217 mfix m = AccumT $ \ w -> mfix $ \ ~ (a, _) -> runAccumT (m a) w
219218 {-# INLINE mfix #-}
220219
@@ -224,7 +223,7 @@ instance (Monoid w) => MonadTrans (AccumT w) where
224223 return (a, mempty )
225224 {-# INLINE lift #-}
226225
227- instance (Monoid w , Functor m , MonadIO m ) => MonadIO (AccumT w m ) where
226+ instance (Monoid w , MonadIO m ) => MonadIO (AccumT w m ) where
228227 liftIO = lift . liftIO
229228 {-# INLINE liftIO #-}
230229
0 commit comments