diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+# 0.4.1.1
+
+- Support GHC-7.2 and GHC-7.0.
+
 # 0.4.1
 
 - Mark `MkSolo` pattern synonym as `COMPLETE`
diff --git a/OneTuple.cabal b/OneTuple.cabal
--- a/OneTuple.cabal
+++ b/OneTuple.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               OneTuple
-version:            0.4.1
+version:            0.4.1.1
 synopsis:           Singleton Tuple
 category:           Data
 description:
@@ -22,7 +22,9 @@
 stability:          experimental
 build-type:         Simple
 tested-with:
-  GHC ==7.4.2
+  GHC ==7.0.4
+   || ==7.2.2
+   || ==7.4.2
    || ==7.6.3
    || ==7.8.4
    || ==7.10.3
@@ -52,15 +54,23 @@
 
   hs-source-dirs:   src
   build-depends:
-      base              >=4.5 && <4.19
+      base              >=4.3 && <4.19
     , template-haskell
 
   if impl(ghc >=9.0)
     build-depends: ghc-prim
 
   else
-    build-depends: hashable >=1.3.5.0 && <1.5
+    if impl(ghc >=7.4)
+      build-depends: hashable >=1.3.5.0 && <1.5
 
+    else
+      build-depends: hashable >=1.2.5.0 && <1.3
+
+  -- generics
+  if !impl(ghc >=7.6)
+    build-depends: ghc-prim
+
   if !impl(ghc >=8.0)
     build-depends:
         semigroups    >=0.18.4 && <0.21
@@ -73,15 +83,13 @@
     else
       build-depends: transformers-compat >=0.5.1.0 && <0.8
 
-  if !impl(ghc >=9.2)
-    build-depends: base-orphans >=0.8.6
 
-  if !impl(ghc >=7.6)
-    build-depends: ghc-prim
-
   if !impl(ghc >=9.0)
-     build-depends: foldable1-classes-compat >=0.1 && <0.2
+    build-depends: foldable1-classes-compat >=0.1 && <0.2
 
+  if !impl(ghc >=9.2)
+    build-depends: base-orphans >=0.8.6
+
 test-suite instances
   type:             exitcode-stdio-1.0
   default-language: Haskell98
@@ -89,7 +97,7 @@
   main-is:          instances.hs
   build-depends:
       base
-    , hashable  >=1.3.5.0 && <1.5
+    , hashable
     , OneTuple
 
   if !impl(ghc >=8.0)
@@ -99,7 +107,7 @@
       , transformers-compat
 
   if !impl(ghc >=9.6)
-     build-depends: foldable1-classes-compat >=0.1 && <0.2
+    build-depends: foldable1-classes-compat >=0.1 && <0.2
 
 test-suite th
   type:             exitcode-stdio-1.0
diff --git a/src/Data/Tuple/Solo.hs b/src/Data/Tuple/Solo.hs
--- a/src/Data/Tuple/Solo.hs
+++ b/src/Data/Tuple/Solo.hs
@@ -1,12 +1,20 @@
 {-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE Safe #-}
+
+#if __GLASGOW_HASKELL__ >=702
 {-# LANGUAGE DeriveGeneric #-}
+#endif
 
 #if __GLASGOW_HASKELL__ >= 708
 {-# LANGUAGE PatternSynonyms #-}
 #endif
 
+#if __GLASGOW_HASKELL__ >=704
+{-# LANGUAGE Safe #-}
+#elif __GLASGOW_HASKELL__ >=702
+{-# LANGUAGE Trustworthy #-}
+#endif
+
 -- | 'Solo' fills the /tuple gap/ with a singleton tuple.
 --
 -- 'Solo' /does not support/ the usual parenthesized tuple syntax.
@@ -109,17 +117,21 @@
 #endif
 #endif
 
+#if MIN_VERSION_base(4,4,0)
 import GHC.Generics        (Generic, Generic1)
 import Control.Monad.Zip   (MonadZip (..))
+#endif
 
 -- | Solo is the singleton tuple data type.
 data Solo a = MkSolo { getSolo :: a }
   deriving
     ( Eq,Ord,Bounded,Read,Typeable,Data
+#if MIN_VERSION_base(4,4,0)
     , Generic
 #if __GLASGOW_HASKELL__ >=706
     , Generic1
 #endif
+#endif
     )
 
 #if __GLASGOW_HASKELL__ >= 708
@@ -212,8 +224,10 @@
 instance MonadFix Solo where
     mfix f = let a = f (getSolo a) in a
 
+#if MIN_VERSION_base(4,4,0)
 instance MonadZip Solo where
     mzipWith f (MkSolo a) (MkSolo b) = MkSolo (f a b)
+#endif
 
 #ifdef LIFTED_FUNCTOR_CLASSES
 instance Eq1 Solo where
