diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -73,15 +73,13 @@
   were treated uniformly; if all of them had access to (some view of) the
   environment record.
 
-To tackle these issues, we begin by writing the controller in a more generic
-way:
+To tackle these issues, we begin by giving the controller a more general signature:
 
     mkControllerIO :: (HasLogger IO e, HasRepository IO e, MonadIO m, MonadReader e m) => Int -> m String
 
-So far only the signature has changed, but now the function can work in other
-reader-like monads besides `ReaderT`.
+Now the function can work in other reader-like monads besides `ReaderT`.
 
-Let's go one step further, and abstract away the `IO`, so that function in the
+Let's go one step further, and abstract away the `IO`, so that functions in the
 record can have effects in other monads:
 
     mkController :: (HasLogger d e, HasRepository d e, LiftDep d m, MonadReader e m) => Int -> m String
@@ -91,14 +89,16 @@
       liftD $ repository e x
       return "view"
 
-Now both the implementation and the signature have changed:
+Now both the signature and the implementation have changed:
 
 - There's a new type variable `d`, the monad in which functions taken from the
   environment `e` have their effects.
+
 - `MonadIO` has been replaced by `LiftDep` from `Control.Monad.Dep.Class`, a
   constraint that says we can lift `d` effects into `m` (though it could still
   make sense to require `MonadIO m` for effects not originating in the
   environment).
+
 - Uses of `liftIO` have been replaced by `liftD`.
 
 If all those constraints prove annoying to write, there's a convenient shorthand using the `MonadDep` type family:
diff --git a/dep-t.cabal b/dep-t.cabal
--- a/dep-t.cabal
+++ b/dep-t.cabal
@@ -1,7 +1,7 @@
 cabal-version:       3.0
 
 name:                dep-t
-version:             0.4.0.1
+version:             0.4.0.2
 synopsis:            Reader-like monad transformer for dependency injection.
 description:         Put all your functions in the environment record! Let all
                      your functions read from the environment record! No favorites!
diff --git a/lib/Control/Monad/Dep/Class.hs b/lib/Control/Monad/Dep/Class.hs
--- a/lib/Control/Monad/Dep/Class.hs
+++ b/lib/Control/Monad/Dep/Class.hs
@@ -49,8 +49,14 @@
 --    mkController' = mkController
 -- :}   
 --
--- The new code can be used as a drop-in replacement of the old one. Notice
--- that in the new code effects taken from the environment record are
+-- The new code can be used as a drop-in replacement of the old one: 
+--
+-- >>> :{ 
+--    mkControllerIO' :: (HasLogger IO e, HasRepository IO e) => Int -> ReaderT e IO String
+--    mkControllerIO' = mkController'
+-- :}
+--
+-- Notice that in the new code effects taken from the environment record are
 -- lifted using 'liftD' instead of 'lift' or 'liftIO'. 
 --
 module Control.Monad.Dep.Class
