diff --git a/Data/Generics/Uniplate.hs b/Data/Generics/Uniplate.hs
--- a/Data/Generics/Uniplate.hs
+++ b/Data/Generics/Uniplate.hs
@@ -1,5 +1,5 @@
 {- |
-/DEPRECATED/ Use "Data.Generics.UniplateStr" instead.
+/RECOMMENDATION/ Use "Data.Generics.UniplateStr" instead.
 
 This is the main Uniplate module, which defines all the essential operations
 in a Haskell 98 compatible manner.
diff --git a/Data/Generics/UniplateOn.hs b/Data/Generics/UniplateOn.hs
--- a/Data/Generics/UniplateOn.hs
+++ b/Data/Generics/UniplateOn.hs
@@ -1,6 +1,6 @@
 {-# OPTIONS_GHC -fno-warn-deprecations #-}
 {- |
-/DEPRECATED/ Use "Data.Generics.UniplateStrOn" instead.
+/RECOMMENDATION/ Use "Data.Generics.UniplateStrOn" instead.
 
 This module retained Haskell 98 compatability, but users who are happy with
 multi-parameter type classes should look towards "Data.Generics.Biplate".
diff --git a/Data/Generics/UniplateStr.hs b/Data/Generics/UniplateStr.hs
--- a/Data/Generics/UniplateStr.hs
+++ b/Data/Generics/UniplateStr.hs
@@ -11,7 +11,10 @@
 -}
 
 
-module Data.Generics.UniplateStr where
+module Data.Generics.UniplateStr(
+    module Data.Generics.UniplateStr,
+    module Data.Generics.Str
+    ) where
 
 import Control.Monad hiding (mapM)
 import Data.List(inits,tails)
@@ -32,18 +35,26 @@
 type UniplateType on = on -> (Str on, Str on -> on)
 
 -- | The standard Uniplate class, all operations require this.
---   Must define one of 'uniplate' or 'uniplateStr', 'uniplateStr' is recommended
 class Uniplate on where
-    -- | The underlying method in the class
+    -- | The underlying method in the class.
     --
-    -- > uniplateStr (Add (Val 1) (Neg (Val 2)))
-    -- >    = (Two (One (Val 1)) (One (Neg (Val 2)))], \(Two (One a) (One b)) -> Add a b)
-    -- > uniplateStr (Val 1)
-    -- >    = (Zero                                  , \Zero                  -> Val 1  )
+    --   Given @uniplate x = (cs, gen)@
+    --
+    --   @cs@ should be a @Str on@, constructed of @Zero@, @One@ and @Two@,
+    --   containing all @x@'s direct children of the same type as @x@. @gen@
+    --   should take a @Str on@ with exactly the same structure as @cs@,
+    --   and generate a new element with the children replaced.
+    --
+    --   Example instance:
+    --
+    -- > instance Uniplate Expr where
+    -- >     uniplate (Val i  ) = (Zero               , \Zero                  -> Val i  )
+    -- >     uniplate (Neg a  ) = (One a              , \(One a)               -> Neg a  )
+    -- >     uniplate (Add a b) = (Two (One a) (One b), \(Two (One a) (One b)) -> Add a b)
     uniplate :: UniplateType on
 
 
--- | Compatibility method, for direct users of the 'uniplate' function
+-- | Compatibility method, for direct users of the old list-based 'uniplate' function
 uniplateList :: Uniplate on => on -> ([on], [on] -> on)
 uniplateList x = (c, b . d)
     where
diff --git a/uniplate.cabal b/uniplate.cabal
--- a/uniplate.cabal
+++ b/uniplate.cabal
@@ -1,7 +1,7 @@
 Cabal-Version:      >= 1.2
 Build-Type:         Simple
 Name:               uniplate
-Version:            1.2
+Version:            1.2.0.1
 Copyright:          2006-8, Neil Mitchell
 Maintainer:         ndmitchell@gmail.com
 Homepage:           http://www-users.cs.york.ac.uk/~ndm/uniplate/
