diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,6 +1,10 @@
-## 5.1.1.1
-* Fix the `Generic`-based instances to also support data constructors with zero
+## 5.1.2
+* Make the `Generic`-based instances to also support data constructors with zero
   arguments (and datatypes with zero constructors).
+
+## 5.1.1.1
+
+* Invalid release
 
 ## 5.1.1
 
diff --git a/recursion-schemes.cabal b/recursion-schemes.cabal
--- a/recursion-schemes.cabal
+++ b/recursion-schemes.cabal
@@ -1,7 +1,7 @@
 name:          recursion-schemes
 category:      Control, Recursion
-version:       5.1.1.1
-license:       BSD3
+version:       5.1.2
+license:       BSD2
 cabal-version: >= 1.8
 license-file:  LICENSE
 author:        Edward A. Kmett
diff --git a/src/Data/Functor/Foldable.hs b/src/Data/Functor/Foldable.hs
--- a/src/Data/Functor/Foldable.hs
+++ b/src/Data/Functor/Foldable.hs
@@ -139,6 +139,7 @@
 import qualified Data.Functor.Base as NEF (NonEmptyF(..))
 
 -- $setup
+-- >>> :set -XDeriveFunctor
 -- >>> import Control.Monad (void)
 -- >>> import Data.Char (toUpper)
 
@@ -791,15 +792,17 @@
 -- :}
 -- "FoObAr"
 --
--- We can implement `zipWith`
+-- We can implement a variant of `zipWith`
 --
+-- >>> data Pair a = Pair a a deriving Functor
+--
 -- >>> :{
--- let zipWith' :: (a -> b -> c) -> [a] -> [b] -> [c]
---     zipWith' f = curry $ cotransverse $ \(xs, base) -> case (project xs, base) of
---       (Nil,      _)        -> Nil
---       (_,        Nil)      -> Nil
---       (Cons x a, Cons y b) -> Cons (f x y) (a, b)
--- :}
+-- let zipWith' :: (a -> a -> b) -> [a] -> [a] -> [b]
+--     zipWith' f xs ys = cotransverse g (Pair xs ys) where
+--       g (Pair Nil        _)          = Nil
+--       g (Pair _          Nil)        = Nil
+--       g (Pair (Cons x a) (Cons y b)) = Cons (f x y) (Pair a b)
+--     :}
 --
 -- >>> zipWith' (*) [1,2,3] [4,5,6]
 -- [4,10,18]
