diff --git a/indexed-traversable-instances.cabal b/indexed-traversable-instances.cabal
--- a/indexed-traversable-instances.cabal
+++ b/indexed-traversable-instances.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               indexed-traversable-instances
-version:            0.1.1.1
+version:            0.1.1.2
 build-type:         Simple
 license:            BSD2
 license-file:       LICENSE
@@ -32,8 +32,8 @@
    || ==8.8.4
    || ==8.10.7
    || ==9.0.2
-   || ==9.2.4
-   || ==9.4.1
+   || ==9.2.5
+   || ==9.4.4
 
 source-repository head
   type:     git
@@ -47,7 +47,7 @@
   build-depends:
       base                  >=4.5      && <4.18
     , indexed-traversable   >=0.1      && <0.2
-    , OneTuple              >=0.3      && <0.4
+    , OneTuple              >=0.3      && <0.5
     , tagged                >=0.8.6    && <0.9
     , unordered-containers  >=0.2.8.0  && <0.3
     , vector                >=0.12.1.2 && <0.14
@@ -83,6 +83,6 @@
 
   build-depends:
       QuickCheck            >=2.14.2   && <2.15
-    , quickcheck-instances  >=0.3.26   && <0.4
+    , quickcheck-instances  >=0.3.29   && <0.4
     , tasty                 >=1.2.3    && <1.5
     , tasty-quickcheck      >=0.10.1.1 && <0.11
diff --git a/src/Data/Functor/WithIndex/Instances.hs b/src/Data/Functor/WithIndex/Instances.hs
--- a/src/Data/Functor/WithIndex/Instances.hs
+++ b/src/Data/Functor/WithIndex/Instances.hs
@@ -21,9 +21,15 @@
 import Control.Applicative ((<$>))
 import Data.HashMap.Lazy   (HashMap)
 import Data.Tagged         (Tagged (..))
-import Data.Tuple.Solo     (Solo (Solo))
 import Data.Vector         (Vector)
 
+#if MIN_VERSION_OneTuple(0,4,0)
+import Data.Tuple.Solo     (Solo (MkSolo))
+#else
+import Data.Tuple.Solo     (Solo (Solo))
+#define MkSolo Solo
+#endif
+
 import qualified Data.HashMap.Lazy as HM
 import qualified Data.Vector       as V
 
@@ -89,13 +95,13 @@
 -------------------------------------------------------------------------------
 
 instance FunctorWithIndex () Solo where
-  imap f (Solo a) = Solo (f () a)
+  imap f (MkSolo a) = MkSolo (f () a)
   {-# INLINE imap #-}
 
 instance FoldableWithIndex () Solo where
-  ifoldMap f (Solo a) = f () a
+  ifoldMap f (MkSolo a) = f () a
   {-# INLINE ifoldMap #-}
 
 instance TraversableWithIndex () Solo where
-  itraverse f (Solo a) = Solo <$> f () a
+  itraverse f (MkSolo a) = MkSolo <$> f () a
   {-# INLINE itraverse #-}
diff --git a/tests/main.hs b/tests/main.hs
--- a/tests/main.hs
+++ b/tests/main.hs
@@ -7,13 +7,19 @@
 import Data.Foldable         (toList)
 import Data.Functor.Identity (Identity (..))
 import Data.Monoid           (Endo (..), Monoid (..))
-import Data.Tuple.Solo       (Solo (Solo))
 import Test.QuickCheck
        (Arbitrary, CoArbitrary, Fun, Function, Property, applyFun, (===))
 import Test.QuickCheck.Poly  (A, B)
 import Test.Tasty            (TestTree, defaultMain, testGroup)
 import Test.Tasty.QuickCheck (testProperty)
 
+#if MIN_VERSION_OneTuple(0,4,0)
+import Data.Tuple.Solo     (Solo (MkSolo))
+#else
+import Data.Tuple.Solo     (Solo (Solo))
+#define MkSolo Solo
+#endif
+
 import qualified Data.HashMap.Lazy as HM
 import qualified Data.Map          as Map
 import qualified Data.Sequence     as Seq
@@ -53,7 +59,7 @@
     , battery $ mkT (HM.keys :: forall a. HM.HashMap I a -> [I])
     , battery $ mkT (zipWith const [0 ..] . toList :: forall a. Seq.Seq a -> [Int])
     , battery $ mkT $ zipWith const [0 ..] . V.toList
-    , battery $ mkT $ \(Solo _) -> [()]
+    , battery $ mkT $ \(MkSolo _) -> [()]
 #if MIN_VERSION_containers(0,6,3)
     , battery $ mkT IntMap.keys
 #endif
