--
-- Maintainer : libraries@haskell.org
-- Stability : experimental
--- Portability : non-portable ( mulit-param classes, functional dependencies )
+-- Portability : non-portable (multi-param classes, functional dependencies)
--
-- The MonadWriter class.
--
listen :: m a -> m (a, w)
pass :: m (a, w -> w) -> m a
-listens :: (MonadWriter w m) => (w -> w) -> m a -> m (a, w)
+listens :: (MonadWriter w m) => (w -> b) -> m a -> m (a, b)
listens f m = do
(a, w) <- listen m
return (a, f w)