diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### 3.6.2 [2017.06.18]
+* Require `QuickCheck-2.10`/`quickcheck-instances-0.13.6` or later
+
 ### 3.6.1 [2017.06.04]
 * Drop support for GHC 7.0 and 7.2
 * Allow building with `quickcheck-instances-0.3.14`
diff --git a/src/TextShow/Instances.hs b/src/TextShow/Instances.hs
--- a/src/TextShow/Instances.hs
+++ b/src/TextShow/Instances.hs
@@ -1,9 +1,5 @@
 {-# LANGUAGE CPP #-}
 
-#if __GLASGOW_HASKELL__ < 702
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-#endif
-
 {-|
 Module:      TextShow.Instances
 Copyright:   (C) 2014-2017 Ryan Scott
diff --git a/src/TextShow/Language/Haskell/TH.hs b/src/TextShow/Language/Haskell/TH.hs
--- a/src/TextShow/Language/Haskell/TH.hs
+++ b/src/TextShow/Language/Haskell/TH.hs
@@ -185,13 +185,9 @@
 -- /Since: 2/
 $(deriveTextShow ''TyLit)
 #else
--- | Only available with @template-haskell-2.7@ or earlier.
---
--- /Since: 2/
+-- | /Since: 2/
 $(deriveTextShow ''InlineSpec)
--- | Only available with @template-haskell-2.7@ or earlier.
---
--- /Since: 2/
+-- | /Since: 2/
 $(deriveTextShow ''Kind)
 #endif
 
diff --git a/tests/Instances/Control/Applicative/Trans.hs b/tests/Instances/Control/Applicative/Trans.hs
--- a/tests/Instances/Control/Applicative/Trans.hs
+++ b/tests/Instances/Control/Applicative/Trans.hs
@@ -1,14 +1,10 @@
 {-# LANGUAGE CPP                        #-}
+{-# LANGUAGE DeriveGeneric              #-}
 {-# LANGUAGE FlexibleContexts           #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE StandaloneDeriving         #-}
 {-# LANGUAGE TemplateHaskell            #-}
 {-# LANGUAGE TypeFamilies               #-}
-
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric              #-}
-#endif
-
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.Control.Applicative.Trans
diff --git a/tests/Instances/Data/Bifunctor.hs b/tests/Instances/Data/Bifunctor.hs
--- a/tests/Instances/Data/Bifunctor.hs
+++ b/tests/Instances/Data/Bifunctor.hs
@@ -1,9 +1,6 @@
-{-# LANGUAGE CPP                        #-}
 {-# LANGUAGE FlexibleContexts           #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
 {-# LANGUAGE UndecidableInstances       #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
@@ -19,24 +16,20 @@
 -}
 module Instances.Data.Bifunctor () where
 
-import           Data.Bifunctor.Biff (Biff(..))
-import           Data.Bifunctor.Clown (Clown(..))
-import           Data.Bifunctor.Fix (Fix(..))
-import           Data.Bifunctor.Flip (Flip(..))
-import           Data.Bifunctor.Join (Join(..))
-import           Data.Bifunctor.Joker (Joker(..))
-import           Data.Bifunctor.Product (Product(..))
-import           Data.Bifunctor.Sum (Sum(..))
-import           Data.Bifunctor.Tannen (Tannen(..))
-import           Data.Bifunctor.Wrapped (WrappedBifunctor(..))
-
-#if __GLASGOW_HASKELL__ < 702
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-#endif
+import Data.Bifunctor.Biff (Biff(..))
+import Data.Bifunctor.Clown (Clown(..))
+import Data.Bifunctor.Fix (Fix(..))
+import Data.Bifunctor.Flip (Flip(..))
+import Data.Bifunctor.Join (Join(..))
+import Data.Bifunctor.Joker (Joker(..))
+import Data.Bifunctor.Product (Product(..))
+import Data.Bifunctor.Sum (Sum(..))
+import Data.Bifunctor.Tannen (Tannen(..))
+import Data.Bifunctor.Wrapped (WrappedBifunctor(..))
 
-import           Instances.Utils.GenericArbitrary (genericArbitrary)
+import Instances.Utils.GenericArbitrary (genericArbitrary)
 
-import           Test.QuickCheck (Arbitrary(..))
+import Test.QuickCheck (Arbitrary(..))
 
 deriving instance Arbitrary (p (f a) (g b)) => Arbitrary (Biff p f g a b)
 deriving instance Arbitrary (f a)           => Arbitrary (Clown f a b)
@@ -52,8 +45,3 @@
 
 instance (Arbitrary (p a b), Arbitrary (q a b)) => Arbitrary (Sum p q a b) where
     arbitrary = genericArbitrary
-
-#if __GLASGOW_HASKELL__ < 702
-$(Generics.deriveAll0 ''Product)
-$(Generics.deriveAll0 ''Sum)
-#endif
diff --git a/tests/Instances/Data/Binary.hs b/tests/Instances/Data/Binary.hs
--- a/tests/Instances/Data/Binary.hs
+++ b/tests/Instances/Data/Binary.hs
@@ -1,12 +1,8 @@
 {-# LANGUAGE CPP                #-}
+{-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE TemplateHaskell    #-}
 {-# LANGUAGE TypeFamilies       #-}
-
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric      #-}
-#endif
-
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.Data.Binary
diff --git a/tests/Instances/Data/Containers.hs b/tests/Instances/Data/Containers.hs
--- a/tests/Instances/Data/Containers.hs
+++ b/tests/Instances/Data/Containers.hs
@@ -1,12 +1,8 @@
 {-# LANGUAGE CPP                #-}
+{-# LANGUAGE DeriveGeneric      #-}
 {-# LANGUAGE StandaloneDeriving #-}
 {-# LANGUAGE TemplateHaskell    #-}
 {-# LANGUAGE TypeFamilies       #-}
-
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric      #-}
-#endif
-
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.Data.Containers
diff --git a/tests/Instances/Data/Functor/Trans.hs b/tests/Instances/Data/Functor/Trans.hs
--- a/tests/Instances/Data/Functor/Trans.hs
+++ b/tests/Instances/Data/Functor/Trans.hs
@@ -14,21 +14,7 @@
 -}
 module Instances.Data.Functor.Trans () where
 
-import Data.Functor.Compose  (Compose(..))
-import Data.Functor.Product  (Product(..))
-import Data.Functor.Reverse  (Reverse(..))
-import Data.Functor.Sum      (Sum(..))
-
-import Prelude ()
-import Prelude.Compat
-
-import Test.QuickCheck (Arbitrary(..), oneof)
-
-deriving instance Arbitrary (f (g a)) => Arbitrary (Compose f g a)
-deriving instance Arbitrary (f a)     => Arbitrary (Reverse f a)
-
-instance (Arbitrary (f a), Arbitrary (g a)) => Arbitrary (Product f g a) where
-    arbitrary = Pair <$> arbitrary <*> arbitrary
+import Data.Functor.Reverse (Reverse(..))
+import Test.QuickCheck (Arbitrary)
 
-instance (Arbitrary (f a), Arbitrary (g a)) => Arbitrary (Sum f g a) where
-    arbitrary = oneof [InL <$> arbitrary, InR <$> arbitrary]
+deriving instance Arbitrary (f a) => Arbitrary (Reverse f a)
diff --git a/tests/Instances/Miscellaneous.hs b/tests/Instances/Miscellaneous.hs
--- a/tests/Instances/Miscellaneous.hs
+++ b/tests/Instances/Miscellaneous.hs
@@ -16,17 +16,13 @@
 
 #include "HsBaseConfig.h"
 
-import Foreign.C.Types (CInt(..), CUIntPtr(..))
 import Foreign.Ptr (Ptr, nullPtr, plusPtr)
 
 import Generics.Deriving.Instances ()
 
-import Instances.Utils.GenericArbitrary (genericArbitrary)
-
 import Prelude ()
 import Prelude.Compat
 
-import System.Exit (ExitCode(..))
 import System.IO (Handle, stdin, stdout, stderr)
 #if defined(HTYPE_GID_T)
 import System.Posix.Types (CGid(..))
@@ -37,18 +33,11 @@
 
 import Test.QuickCheck (Arbitrary(..), oneof)
 
-
-instance Arbitrary ExitCode where
-    arbitrary = genericArbitrary
-
 instance Arbitrary Handle where
     arbitrary = oneof $ map pure [stdin, stdout, stderr]
 
 instance Arbitrary (Ptr a) where
     arbitrary = plusPtr nullPtr <$> arbitrary
-
-deriving instance Arbitrary CInt
-deriving instance Arbitrary CUIntPtr
 
 #if defined(HTYPE_GID_T)
 deriving instance Arbitrary CGid
diff --git a/tests/Instances/System/Console/Haskeline.hs b/tests/Instances/System/Console/Haskeline.hs
--- a/tests/Instances/System/Console/Haskeline.hs
+++ b/tests/Instances/System/Console/Haskeline.hs
@@ -1,12 +1,6 @@
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TemplateHaskell    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE DeriveGeneric      #-}
-#endif
-
+{-# LANGUAGE StandaloneDeriving #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.System.Console.Haskeline
@@ -20,11 +14,7 @@
 -}
 module Instances.System.Console.Haskeline () where
 
-#if __GLASGOW_HASKELL__ >= 704
 import           GHC.Generics (Generic)
-#else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-#endif
 
 import           Instances.Utils ((<@>))
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
@@ -51,8 +41,4 @@
 instance Arbitrary History where
     arbitrary = addHistory <$> arbitrary <@> emptyHistory
 
-#if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic Completion
-#else
-$(Generics.deriveAll0 ''Completion)
-#endif
diff --git a/tests/Instances/System/Locale.hs b/tests/Instances/System/Locale.hs
--- a/tests/Instances/System/Locale.hs
+++ b/tests/Instances/System/Locale.hs
@@ -1,12 +1,6 @@
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TemplateHaskell    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE DeriveGeneric      #-}
-#endif
-
+{-# LANGUAGE StandaloneDeriving #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.System.Locale
@@ -20,23 +14,12 @@
 -}
 module Instances.System.Locale () where
 
-#if __GLASGOW_HASKELL__ >= 704
 import           GHC.Generics (Generic)
-#else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-#endif
-
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
-
 import           System.Locale (TimeLocale(..))
-
 import           Test.QuickCheck (Arbitrary(..))
 
 instance Arbitrary TimeLocale where
     arbitrary = genericArbitrary
 
-#if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic TimeLocale
-#else
-$(Generics.deriveAll0 ''TimeLocale)
-#endif
diff --git a/tests/Instances/System/Posix.hs b/tests/Instances/System/Posix.hs
--- a/tests/Instances/System/Posix.hs
+++ b/tests/Instances/System/Posix.hs
@@ -1,14 +1,8 @@
 {-# LANGUAGE CPP                #-}
 
 #if !defined(mingw32_HOST_OS)
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TemplateHaskell    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-# if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE DeriveGeneric      #-}
-# endif
-
+{-# LANGUAGE StandaloneDeriving #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 #endif
 
@@ -25,11 +19,7 @@
 module Instances.System.Posix () where
 
 #if !defined(mingw32_HOST_OS)
-# if __GLASGOW_HASKELL__ >= 704
 import           GHC.Generics (Generic)
-# else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-# endif
 
 import           Instances.Miscellaneous ()
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
@@ -42,6 +32,7 @@
 import           System.Posix.User (GroupEntry(..), UserEntry(..))
 
 import           Test.QuickCheck (Arbitrary(..), arbitraryBoundedEnum)
+import           Test.QuickCheck.Instances ()
 
 deriving instance Bounded RTLDFlags
 deriving instance Enum RTLDFlags
@@ -60,15 +51,8 @@
 instance Arbitrary UserEntry where
     arbitrary = genericArbitrary
 
-# if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic DL
 deriving instance Generic ProcessStatus
 deriving instance Generic GroupEntry
 deriving instance Generic UserEntry
-# else
-$(Generics.deriveAll0 ''DL)
-$(Generics.deriveAll0 ''ProcessStatus)
-$(Generics.deriveAll0 ''GroupEntry)
-$(Generics.deriveAll0 ''UserEntry)
-# endif
 #endif
diff --git a/tests/Instances/System/Win32.hs b/tests/Instances/System/Win32.hs
--- a/tests/Instances/System/Win32.hs
+++ b/tests/Instances/System/Win32.hs
@@ -1,15 +1,9 @@
 {-# LANGUAGE CPP                        #-}
 
 #if defined(mingw32_HOST_OS)
+{-# LANGUAGE DeriveGeneric              #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
-
-# if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric              #-}
-# endif
-
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 #endif
 
@@ -26,11 +20,7 @@
 module Instances.System.Win32 () where
 
 #if defined(mingw32_HOST_OS)
-# if __GLASGOW_HASKELL__ >= 704
 import           GHC.Generics (Generic)
-# else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-# endif
 
 import           Instances.Miscellaneous ()
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
@@ -131,7 +121,6 @@
     arbitrary = genericArbitrary
 #endif
 
-# if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic DebugEventInfo
 deriving instance Generic Exception
 deriving instance Generic BY_HANDLE_FILE_INFORMATION
@@ -140,7 +129,7 @@
 deriving instance Generic SYSTEM_INFO
 deriving instance Generic SYSTEMTIME
 deriving instance Generic TIME_ZONE_INFORMATION
-#  if MIN_VERSION_Win32(2,5,0)
+# if MIN_VERSION_Win32(2,5,0)
 deriving instance Generic BLENDFUNCTION
 deriving instance Generic KEYBDINPUT
 deriving instance Generic MOUSEINPUT
@@ -155,15 +144,5 @@
 deriving instance Generic Attachment
 deriving instance Generic Message
 deriving instance Generic Unsupported
-#  endif
-# else
-$(Generics.deriveAll0 ''DebugEventInfo)
-$(Generics.deriveAll0 ''Exception)
-$(Generics.deriveAll0 ''BY_HANDLE_FILE_INFORMATION)
-$(Generics.deriveAll0 ''WIN32_FILE_ATTRIBUTE_DATA)
-$(Generics.deriveAll0 ''ProcessorArchitecture)
-$(Generics.deriveAll0 ''SYSTEM_INFO)
-$(Generics.deriveAll0 ''SYSTEMTIME)
-$(Generics.deriveAll0 ''TIME_ZONE_INFORMATION)
 # endif
 #endif
diff --git a/tests/Instances/Text/PrettyPrint.hs b/tests/Instances/Text/PrettyPrint.hs
--- a/tests/Instances/Text/PrettyPrint.hs
+++ b/tests/Instances/Text/PrettyPrint.hs
@@ -1,13 +1,7 @@
 {-# LANGUAGE CPP                        #-}
+{-# LANGUAGE DeriveGeneric              #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
-
-#if __GLASGOW_HASKELL__ >= 702
-{-# LANGUAGE DeriveGeneric              #-}
-#endif
-
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.Text.PrettyPrint
@@ -22,6 +16,10 @@
 -}
 module Instances.Text.PrettyPrint () where
 
+#if !(MIN_VERSION_pretty(1,1,2)) || MIN_VERSION_pretty(1,1,3)
+import           GHC.Generics (Generic)
+#endif
+
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
 
 import           Prelude ()
@@ -41,14 +39,6 @@
 import qualified Text.PrettyPrint.Annotated.HughesPJClass as Annot (PrettyLevel(..))
 #endif
 
-#if !(MIN_VERSION_pretty(1,1,2)) || MIN_VERSION_pretty(1,1,3)
-# if __GLASGOW_HASKELL__ >= 704
-import           GHC.Generics (Generic)
-# else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-# endif
-#endif
-
 instance Arbitrary Doc where
     arbitrary = text <$> arbitrary
 
@@ -70,13 +60,8 @@
 deriving instance Show Style
 deriving instance Show TextDetails
 
-# if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic Style
 deriving instance Generic TextDetails
-# else
-$(Generics.deriveAll0 ''Style)
-$(Generics.deriveAll0 ''TextDetails)
-# endif
 #endif
 
 #if MIN_VERSION_pretty(1,1,3)
@@ -91,11 +76,6 @@
 instance Arbitrary a => Arbitrary (Span a) where
     arbitrary = genericArbitrary
 
-# if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic (AnnotDetails a)
 deriving instance Generic (Span a)
-# else
-$(Generics.deriveAll0 ''AnnotDetails)
-$(Generics.deriveAll0 ''Span)
-# endif
 #endif
diff --git a/tests/Instances/Text/XHtml.hs b/tests/Instances/Text/XHtml.hs
--- a/tests/Instances/Text/XHtml.hs
+++ b/tests/Instances/Text/XHtml.hs
@@ -1,12 +1,6 @@
 {-# LANGUAGE CPP                #-}
-{-# LANGUAGE StandaloneDeriving #-}
-{-# LANGUAGE TemplateHaskell    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-#if __GLASGOW_HASKELL__ >= 702
 {-# LANGUAGE DeriveGeneric      #-}
-#endif
-
+{-# LANGUAGE StandaloneDeriving #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-|
 Module:      Instances.Text.XHtml
@@ -20,11 +14,7 @@
 -}
 module Instances.Text.XHtml () where
 
-#if __GLASGOW_HASKELL__ >= 704
 import           GHC.Generics (Generic)
-#else
-import qualified Generics.Deriving.TH as Generics (deriveAll0)
-#endif
 
 import           Instances.Utils.GenericArbitrary (genericArbitrary)
 
@@ -48,8 +38,4 @@
 instance Arbitrary HtmlTable where
     arbitrary = cell <$> (arbitrary :: Gen Html)
 
-#if __GLASGOW_HASKELL__ >= 704
 deriving instance Generic HotLink
-#else
-$(Generics.deriveAll0 ''HotLink)
-#endif
diff --git a/tests/Spec/Data/Functor/TransSpec.hs b/tests/Spec/Data/Functor/TransSpec.hs
--- a/tests/Spec/Data/Functor/TransSpec.hs
+++ b/tests/Spec/Data/Functor/TransSpec.hs
@@ -22,6 +22,7 @@
 import Spec.Utils (matchesTextShowSpec)
 
 import Test.Hspec (Spec, describe, hspec, parallel)
+import Test.QuickCheck.Instances ()
 
 import TextShow.Data.Functor.Trans ()
 
diff --git a/text-show-instances.cabal b/text-show-instances.cabal
--- a/text-show-instances.cabal
+++ b/text-show-instances.cabal
@@ -1,5 +1,5 @@
 name:                text-show-instances
-version:             3.6.1
+version:             3.6.2
 synopsis:            Additional instances for text-show
 description:         @text-show-instances@ is a supplemental library to @text-show@
                      that provides additional @Show@ instances for data types in
@@ -65,9 +65,7 @@
 copyright:           (C) 2014-2017 Ryan Scott
 category:            Text
 build-type:          Simple
-tested-with:         GHC == 7.0.4
-                   , GHC == 7.2.2
-                   , GHC == 7.4.2
+tested-with:         GHC == 7.4.2
                    , GHC == 7.6.3
                    , GHC == 7.8.4
                    , GHC == 7.10.3
@@ -274,8 +272,8 @@
                      , old-time             >= 1      && < 1.2
                      , pretty               >= 1      && < 1.2
                      , process              >= 1      && < 1.7
-                     , QuickCheck           >= 2.9    && < 3
-                     , quickcheck-instances >= 0.3.14 && < 0.4
+                     , QuickCheck           >= 2.10   && < 2.11
+                     , quickcheck-instances >= 0.3.16 && < 0.4
                      , random               >= 1.0.1  && < 1.2
                      , semigroups           >= 0.17   && < 1
                      , tagged               >= 0.4.4  && < 1
