diff --git a/data-diverse.cabal b/data-diverse.cabal
--- a/data-diverse.cabal
+++ b/data-diverse.cabal
@@ -1,5 +1,5 @@
 name:                data-diverse
-version:             0.2.0.0
+version:             0.2.1.0
 synopsis:            Extensible records and polymorphic variants.
 description:         "Data.Diverse.Many" is an extensible record for any size encoded efficiently as (Int, Map Int Any).
                      "Data.Diverse.Which" is a polymorphic variant of possibilities encoded as (Int, Any).
diff --git a/src/Data/Diverse/PackageId.hs b/src/Data/Diverse/PackageId.hs
--- a/src/Data/Diverse/PackageId.hs
+++ b/src/Data/Diverse/PackageId.hs
@@ -4,4 +4,4 @@
 
 -- | This is used for the Generic D1 metadata.
 -- NB. package id is obtained by running `stack exec ghc-pkg describe data-diverse`
-type PackageId = "data-diverse-0.2.0.0-GlnmSQqNwDC9lfFZmoKMcf"
+type PackageId = "data-diverse-0.2.1.0-HVzNZDHjJfaFyNLHjSdOFm"
diff --git a/src/Data/Diverse/Which/Internal.hs b/src/Data/Diverse/Which/Internal.hs
--- a/src/Data/Diverse/Which/Internal.hs
+++ b/src/Data/Diverse/Which/Internal.hs
@@ -316,7 +316,7 @@
     case' CaseDiversify = pick
 
 -- | A simple version of 'diversify' which add another type to the front of the typelist.
-diversify0 :: Which xs -> Which (x ': xs)
+diversify0 :: forall x xs. Which xs -> Which (x ': xs)
 diversify0 (Which n v) = Which (n + 1) v
 
 ------------------------------------------------------------------
diff --git a/test/Data/Diverse/ManySpec.hs b/test/Data/Diverse/ManySpec.hs
--- a/test/Data/Diverse/ManySpec.hs
+++ b/test/Data/Diverse/ManySpec.hs
@@ -54,15 +54,11 @@
 
         it "can converted to and from a tuple" $ do
             let x = (5 :: Int) ./ False ./ 'X' ./ Just 'O' ./ nul
-                y' = ((5 :: Int), False, 'X', Just 'O')
-                y = toMany' y'
-                y2 = review _Many' y'
-                x' = fromMany' x
-                x2' = view _Many' x
-            x `shouldBe` y
-            x `shouldBe` y2
-            x' `shouldBe` y'
-            x2' `shouldBe` y'
+                t = ((5 :: Int), False, 'X', Just 'O')
+            x `shouldBe` toMany' t
+            x `shouldBe` review _Many' t
+            t `shouldBe` fromMany' x
+            t `shouldBe` view _Many' x
 
         it "can construct using 'single', 'nul', 'prefix', 'postfix', 'append'" $ do
             let x = (5 :: Int) ./ False ./ 'X' ./ Just 'O' ./ nul
