diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.7.4
+
+- QuickCheck-2.10 support: Arbitrary1/2 instances
+- GHC-8.2 support
+
 # 0.7.3
 
 - Add `salign :: (Align f, Semigroup a) => f a -> f a -> f a`
diff --git a/Data/These.hs b/Data/These.hs
--- a/Data/These.hs
+++ b/Data/These.hs
@@ -66,7 +66,7 @@
 import Control.DeepSeq (NFData (..))
 import Data.Aeson (FromJSON (..), ToJSON (..), (.=))
 import Data.Binary (Binary (..))
-import Test.QuickCheck (Arbitrary (..), CoArbitrary (..), oneof)
+import Test.QuickCheck (Arbitrary (..), Arbitrary1 (..), Arbitrary2 (..), CoArbitrary (..), oneof, arbitrary1, shrink1)
 import Test.QuickCheck.Function (Function (..), functionMap)
 
 import qualified Data.HashMap.Strict as HM
@@ -362,15 +362,25 @@
         p _  = fail "Expected object with 'This' and 'That' keys only"
 #endif
 
+instance Arbitrary2 These where
+    liftArbitrary2 arbA arbB = oneof
+        [ This <$> arbA
+        , That <$> arbB
+        , These <$> arbA <*> arbB
+        ]
+
+    liftShrink2  shrA _shrB (This x) = This <$> shrA x
+    liftShrink2 _shrA  shrB (That y) = That <$> shrB y
+    liftShrink2  shrA  shrB (These x y) =
+        [This x, That y] ++ [These x' y' | (x', y') <- liftShrink2 shrA shrB (x, y)]
+
+instance (Arbitrary a) => Arbitrary1 (These a) where
+    liftArbitrary = liftArbitrary2 arbitrary
+    liftShrink = liftShrink2 shrink
+
 instance (Arbitrary a, Arbitrary b) => Arbitrary (These a b) where
-  arbitrary = oneof [ This <$> arbitrary
-                    , That <$> arbitrary
-                    , These <$> arbitrary <*> arbitrary
-                    ]
-  shrink (This x)    = This <$> shrink x
-  shrink (That y)    = That <$> shrink y
-  shrink (These x y) = [This x, That y] ++
-                       [These x' y' | (x', y') <- shrink (x, y)]
+    arbitrary = arbitrary1
+    shrink = shrink1
 
 instance (Function a, Function b) => Function (These a b) where
   function = functionMap g f
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -35,7 +35,6 @@
 
 import qualified Data.Aeson as Aeson
 import qualified Data.Binary as Binary
-import qualified Data.Set as Set
 
 -- For old GHC to work
 data Proxy (a :: * -> *) = Proxy
@@ -206,28 +205,6 @@
       where
         lhs = crosswalk f x
         rhs = sequenceL . fmap f $ x
-
--------------------------------------------------------------------------------
--- Orphan instances
--------------------------------------------------------------------------------
-
-instance (Arbitrary a, Arbitrary (f a), Arbitrary (g a))
-    => Arbitrary (P.Product f g a) where
-  arbitrary = P.Pair <$> arbitrary <*> arbitrary
-  shrink (P.Pair x y) = [P.Pair x' y' | (x', y') <- shrink (x, y)]
-
-
-#if !MIN_VERSION_quickcheck_instances(0,3,12)
-instance Arbitrary a => Arbitrary (V.Vector a) where
-  arbitrary = V.fromList <$> arbitrary
-  shrink = fmap V.fromList . shrink . V.toList
-#endif
-
-#if !MIN_VERSION_QuickCheck(2,9,0)
-instance Arbitrary a => Arbitrary (ZipList a) where
-  arbitrary = ZipList <$> arbitrary
-  shrink = fmap ZipList . shrink . getZipList
-#endif
 
 -------------------------------------------------------------------------------
 -- aeson
diff --git a/these.cabal b/these.cabal
--- a/these.cabal
+++ b/these.cabal
@@ -1,5 +1,5 @@
 Name:                these
-Version:             0.7.3
+Version:             0.7.4
 Synopsis:            An either-or-both data type & a generalized 'zip with padding' typeclass
 Homepage:            https://github.com/isomorphism/these
 License:             BSD3
@@ -22,6 +22,13 @@
   .
   Also included is @ChronicleT@, a monad transformer based on the Monad instance
   for @These a@, along with the usual monad transformer bells and whistles.
+tested-with:
+  GHC==7.4.2,
+  GHC==7.6.3,
+  GHC==7.8.4,
+  GHC==7.10.3,
+  GHC==8.0.2,
+  GHC==8.2.1
 
 source-repository head
   type: git
@@ -35,10 +42,10 @@
                        Control.Monad.Chronicle.Class,
                        Control.Monad.Trans.Chronicle
 
-  Build-depends:       base                     >= 4.4     && < 4.10,
-                       aeson                    >= 0.7.0.4 && < 1.1,
+  Build-depends:       base                     >= 4.4     && < 4.11,
+                       aeson                    >= 0.7.0.4 && < 1.3,
                        bifunctors               >= 0.1     && < 5.5,
-                       binary                   >= 0.5.0.2 && < 0.9,
+                       binary                   >= 0.5.0.2 && < 0.10,
                        containers               >= 0.4     && < 0.6,
                        data-default-class       >= 0.0     && < 0.2,
                        deepseq                  >= 1.3.0.0 && < 1.5,
@@ -46,13 +53,13 @@
                        keys                     >= 3.10    && < 3.12,
                        mtl                      >= 2       && < 2.3,
                        profunctors              >= 3       && < 5.3,
-                       QuickCheck               >= 2.8     && < 2.9.3,
-                       semigroupoids            >= 1.0     && < 5.2,
+                       QuickCheck               >= 2.10    && < 2.11,
+                       semigroupoids            >= 1.0     && < 5.3,
                        transformers             >= 0.2     && < 0.6,
                        transformers-compat      >= 0.2     && < 0.6,
                        unordered-containers     >= 0.2     && < 0.3,
-                       vector                   >= 0.4     && < 0.12,
-                       vector-instances         >= 3.3.1   && < 3.4
+                       vector                   >= 0.4     && < 0.13,
+                       vector-instances         >= 3.3.1   && < 3.5
   if impl(ghc <7.5)
     build-depends:     ghc-prim
 
@@ -69,9 +76,9 @@
   ghc-options:         -Wall
   build-depends:       these,
                        base                    >= 4.5,
-                       quickcheck-instances    >= 0.3.6 && < 0.3.13,
-                       tasty                   >= 0.10  && < 0.12,
-                       tasty-quickcheck        >= 0.8   && < 0.9,
+                       quickcheck-instances    >= 0.3.15 && < 0.3.16,
+                       tasty                   >= 0.10   && < 0.12,
+                       tasty-quickcheck        >= 0.8    && < 0.10,
                        aeson,
                        bifunctors,
                        binary,
