diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+0.3.29.1
+
+* Support `OneTuple-0.4`
+
 0.3.29
 
 * Support `primitive-0.8`
diff --git a/quickcheck-instances.cabal b/quickcheck-instances.cabal
--- a/quickcheck-instances.cabal
+++ b/quickcheck-instances.cabal
@@ -1,5 +1,5 @@
 name:               quickcheck-instances
-version:            0.3.29
+version:            0.3.29.1
 synopsis:           Common quickcheck instances
 description:
   QuickCheck instances.
@@ -12,9 +12,6 @@
   within another library module, so that you don't
   impose these instances on down-stream consumers of
   your code.
-  .
-  For information on writing a test-suite with Cabal
-  see <https://www.haskell.org/cabal/users-guide/developing-packages.html#test-suites>
 
 license:            BSD3
 license-file:       LICENSE
@@ -43,6 +40,7 @@
    || ==9.0.2
    || ==9.2.7
    || ==9.4.4
+   || ==9.6.1
 
 source-repository head
   type:     git
@@ -97,7 +95,7 @@
     , hashable              >=1.2.7.0  && <1.5
     , integer-logarithms    >=1.0.3    && <1.1
     , old-time              >=1.1.0.0  && <1.2
-    , OneTuple              >=0.3      && <0.4
+    , OneTuple              >=0.3      && <0.5
     , primitive             >=0.6.4.0  && <0.9
     , scientific            >=0.3.6.2  && <0.4
     , strict                >=0.4      && <0.5
diff --git a/src/Test/QuickCheck/Instances/Solo.hs b/src/Test/QuickCheck/Instances/Solo.hs
--- a/src/Test/QuickCheck/Instances/Solo.hs
+++ b/src/Test/QuickCheck/Instances/Solo.hs
@@ -5,13 +5,18 @@
 import Prelude ()
 import Test.QuickCheck.Instances.CustomPrelude
 
+#if MIN_VERSION_OneTuple(0,4,0)
+import Data.Tuple.Solo (Solo (MkSolo), getSolo)
+#else
 import Data.Tuple.Solo (Solo (Solo), getSolo)
+#define MkSolo Solo
+#endif
 
 import Test.QuickCheck
 
 instance Arbitrary1 Solo where
-  liftArbitrary = fmap Solo
-  liftShrink shr = map Solo . shr . getSolo
+  liftArbitrary = fmap MkSolo
+  liftShrink shr = map MkSolo . shr . getSolo
 
 instance Arbitrary a => Arbitrary (Solo a) where
   arbitrary = arbitrary1
@@ -21,4 +26,4 @@
   coarbitrary = coarbitrary . getSolo
 
 instance Function a => Function (Solo a) where
-  function = functionMap getSolo Solo
+  function = functionMap getSolo MkSolo
