diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,33 +21,34 @@
  - travis_retry sudo apt-get update
  - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
  - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
- - cabal --version
+ - export CABAL=cabal-$CABALVER
+ - $CABAL --version
 
 install:
  - travis_retry cabal update
- - cabal install --only-dependencies --enable-tests
+ - $CABAL install --only-dependencies --enable-tests
 
 # Here starts the actual work to be performed for the package under
 # test; any command which exits with a non-zero exit code causes the
 # build to fail.
 script:
  # -v2 provides useful information for debugging
- - cabal clean
- - cabal configure -v2 --enable-tests
+ - $CABAL clean
+ - $CABAL configure -v2 --enable-tests
 
  # this builds all libraries and executables
  # (including tests/benchmarks)
- - cabal build
- - cabal test
+ - $CABAL build
+ - $CABAL test
 
  # tests that a source-distribution can be generated
- - cabal sdist
+ - $CABAL sdist
 
  # check that the generated source-distribution can be built & installed
- - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
+ - export SRC_TGZ=$($CABAL info . | awk '{print $2 ".tar.gz";exit}') ;
    cd dist/;
    if [ -f "$SRC_TGZ" ]; then
-      cabal install --force-reinstalls "$SRC_TGZ";
+      $CABAL install --force-reinstalls "$SRC_TGZ";
    else
       echo "expected '$SRC_TGZ' not found";
       exit 1;
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.3.4
+-----
+* Support `generic-deriving` 1.8. We no longer incur a `generic-deriving` requirement at all except on GHC < 7.6.
+
 0.3.3.1
 -------
 * Support `reflection` 2
diff --git a/hyperloglog.cabal b/hyperloglog.cabal
--- a/hyperloglog.cabal
+++ b/hyperloglog.cabal
@@ -1,6 +1,6 @@
 name:          hyperloglog
 category:      Numeric
-version:       0.3.3.1
+version:       0.3.4
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -11,7 +11,7 @@
 bug-reports:   http://github.com/analytics/hyperloglog/issues
 copyright:     Copyright (C) 2013-2015 Edward A. Kmett
 build-type:    Custom
-tested-with:   GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.0.20150307
+tested-with:   GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1
 synopsis:      An approximate streaming (constant space) unique object counter
 description:
   This package provides an approximate streaming (constant space) unique object counter.
@@ -54,7 +54,6 @@
     comonad                   >= 4        && < 5,
     deepseq                   >= 1.3      && < 1.5,
     distributive              >= 0.3      && < 1,
-    generic-deriving          >= 1.4      && < 1.8,
     hashable                  >= 1.1.2.3  && < 1.3,
     hashable-extras           >= 0.1      && < 1,
     lens                      >= 4        && < 5,
@@ -65,6 +64,9 @@
     siphash                   >= 1.0.3    && < 2,
     tagged                    >= 0.4.5    && < 1,
     vector                    >= 0.9      && < 0.11
+
+  if impl(ghc < 7.6)
+    build-depends: generic-deriving >= 1.4 && < 1.9
 
   exposed-modules:
     Data.HyperLogLog
diff --git a/src/Data/HyperLogLog/Config.hs b/src/Data/HyperLogLog/Config.hs
--- a/src/Data/HyperLogLog/Config.hs
+++ b/src/Data/HyperLogLog/Config.hs
@@ -67,7 +67,11 @@
 #if __GLASGOW_HASKELL__ < 710
 import GHC.Word
 #endif
+#if __GLASGOW_HASKELL__ < 706
 import Generics.Deriving hiding (to, D)
+#else
+import GHC.Generics hiding (to, D)
+#endif
 #ifdef USE_TYPE_LITS
 import GHC.TypeLits
 #endif
diff --git a/src/Data/HyperLogLog/Type.hs b/src/Data/HyperLogLog/Type.hs
--- a/src/Data/HyperLogLog/Type.hs
+++ b/src/Data/HyperLogLog/Type.hs
@@ -50,30 +50,34 @@
   ) where
 
 #if __GLASGOW_HASKELL__ < 710
-import           Control.Applicative
+import Control.Applicative
 #endif
 
-import           Control.Lens
-import           Control.Monad
-import           Crypto.MAC.SipHash
-import           Data.Approximate.Type
-import           Data.Bits
-import           Data.Bits.Extras
+import Control.Lens
+import Control.Monad
+import Crypto.MAC.SipHash
+import Data.Approximate.Type
+import Data.Bits
+import Data.Bits.Extras
 import qualified Data.Binary as Binary
-import           Data.Binary
-import           Data.Bytes.Put (runPutS)
-import           Data.Bytes.Serial
-import           Data.HyperLogLog.Config
-import           Data.Proxy
-import           Data.Semigroup
-import           Data.Serialize as Serialize
-import qualified Data.Vector.Unboxed                           as V
-import qualified Data.Vector.Unboxed.Mutable                   as MV
+import Data.Binary
+import Data.Bytes.Put (runPutS)
+import Data.Bytes.Serial
+import Data.HyperLogLog.Config
+import Data.Proxy
+import Data.Semigroup
+import Data.Serialize as Serialize
+import qualified Data.Vector.Unboxed as V
+import qualified Data.Vector.Unboxed.Mutable as MV
 #if __GLASGOW_HASKELL__ < 710
-import           Data.Word
+import Data.Word
 #endif
-import           Generics.Deriving                             hiding (D, to)
-import           GHC.Int
+#if __GLASGOW_HASKELL__ < 706
+import Generics.Deriving hiding (D, to)
+#else
+import GHC.Generics hiding (D, to)
+#endif
+import GHC.Int
 
 -- $setup
 -- >>> :set -XTemplateHaskell
