diff --git a/Control/Monad/Error.hs b/Control/Monad/Error.hs
--- a/Control/Monad/Error.hs
+++ b/Control/Monad/Error.hs
@@ -34,7 +34,7 @@
 module Control.Monad.Error (
     -- * Monads with error handling
     MonadError(..),
-    Error,
+    Error(..),
     -- * The ErrorT monad transformer
     ErrorT(..),
     mapErrorT,
diff --git a/Control/Monad/Identity.hs b/Control/Monad/Identity.hs
--- a/Control/Monad/Identity.hs
+++ b/Control/Monad/Identity.hs
@@ -33,7 +33,12 @@
 -}
 
 module Control.Monad.Identity (
-    module Data.Functor.Identity
+    module Data.Functor.Identity,
+
+    module Control.Monad,
+    module Control.Monad.Fix,
    ) where
 
+import Control.Monad
+import Control.Monad.Fix
 import Data.Functor.Identity
diff --git a/Control/Monad/State/Class.hs b/Control/Monad/State/Class.hs
--- a/Control/Monad/State/Class.hs
+++ b/Control/Monad/State/Class.hs
@@ -46,12 +46,11 @@
 import Data.Monoid
 
 -- ---------------------------------------------------------------------------
--- | /get/ returns the state from the internals of the monad.
---
--- /put/ replaces the state inside the monad.
 
 class (Monad m) => MonadState s m | m -> s where
+    -- | Return the state from the internals of the monad.
     get :: m s
+    -- | Replace the state inside the monad.
     put :: s -> m ()
 
 -- | Monadic state transformer.
diff --git a/Control/Monad/Writer/Class.hs b/Control/Monad/Writer/Class.hs
--- a/Control/Monad/Writer/Class.hs
+++ b/Control/Monad/Writer/Class.hs
@@ -59,15 +59,30 @@
 -- the written object.
 
 class (Monoid w, Monad m) => MonadWriter w m | m -> w where
+    -- | @'tell' w@ is an action that produces the output @w@.
     tell   :: w -> m ()
+    -- | @'listen' m@ is an action that executes the action @m@ and adds
+    -- its output to the value of the computation.
     listen :: m a -> m (a, w)
+    -- | @'pass' m@ is an action that executes the action @m@, which
+    -- returns a value and a function, and returns the value, applying
+    -- the function to the output.
     pass   :: m (a, w -> w) -> m a
 
+-- | @'listens' f m@ is an action that executes the action @m@ and adds
+-- the result of applying @f@ to the output to the value of the computation.
+--
+-- * @'listens' f m = 'liftM' (id *** f) ('listen' m)@
 listens :: (MonadWriter w m) => (w -> b) -> m a -> m (a, b)
 listens f m = do
     ~(a, w) <- listen m
     return (a, f w)
 
+-- | @'censor' f m@ is an action that executes the action @m@ and
+-- applies the function @f@ to its output, leaving the return value
+-- unchanged.
+--
+-- * @'censor' f m = 'pass' ('liftM' (\\x -> (x,f)) m)@
 censor :: (MonadWriter w m) => (w -> w) -> m a -> m a
 censor f m = pass $ do
     a <- m
diff --git a/monads-fd.cabal b/monads-fd.cabal
--- a/monads-fd.cabal
+++ b/monads-fd.cabal
@@ -1,5 +1,5 @@
 name:         monads-fd
-version:      0.1.0.0
+version:      0.1.0.1
 license:      BSD3
 license-file: LICENSE
 author:       Andy Gill
