diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -25,8 +25,7 @@
 
 install:
  - travis_retry cabal update
- - cabal install --only-dependencies
- - travis_retry sudo apt-get -q -y install hlint || cabal install hlint
+ - 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
@@ -42,7 +41,6 @@
 
  # tests that a source-distribution can be generated
  - cabal sdist
- - hlint src --cpp-define HLINT
 
  # check that the generated source-distribution can be built & installed
  - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.3.2
+-----
+* Simplified `reifyConfig` internals.
+
 0.3.1
 -----
 * Added `insertHash`. This enables users of the 0.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.1
+version:       0.3.2
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -42,10 +42,6 @@
   default: True
   manual: True
 
-flag lib-Werror
-  default: False
-  manual: True
-
 library
   build-depends:
     approximate               >= 0.2.1    && < 1,
@@ -63,7 +59,7 @@
     hashable-extras           >= 0.1      && < 1,
     lens                      >= 4        && < 5,
     reflection                >= 1.3      && < 2,
-    semigroupoids             >= 4        && < 5,
+    semigroupoids             >= 4        && < 6,
     semigroups                >= 0.8.4    && < 1,
     safecopy                  >= 0.8.1    && < 0.9,
     siphash                   >= 1.0.3    && < 2,
@@ -75,9 +71,6 @@
     Data.HyperLogLog.Config
     Data.HyperLogLog.Type
 
-  if flag(lib-Werror)
-    ghc-options: -Werror
-
   ghc-options: -Wall -fwarn-tabs -O2
   hs-source-dirs: src
 
@@ -98,6 +91,3 @@
       generic-deriving,
       semigroups     >= 0.9,
       simple-reflect >= 0.3.1
-
-  if impl(ghc<7.6.1)
-    ghc-options: -Werror
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
@@ -162,7 +162,7 @@
 
 reifyConfig :: Int -> (forall (o :: *). ReifiesConfig o => Proxy o -> r) -> r
 reifyConfig i f = reify (hll i) (go f) where
-  go :: Reifies o Config => (Proxy (ReifiedConfig o) -> a) -> proxy o -> a
+  go :: (Proxy (ReifiedConfig o) -> a) -> proxy o -> a
   go g _ = g Proxy
 {-# INLINE reifyConfig #-}
 
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
@@ -73,6 +73,7 @@
 
 -- $setup
 -- >>> :set -XTemplateHaskell
+-- >>> :set -XDataKinds
 -- >>> :load Data.HyperLogLog
 -- >>> import Control.Lens
 -- >>> import Data.Reflection
diff --git a/tests/doctests.hsc b/tests/doctests.hsc
--- a/tests/doctests.hsc
+++ b/tests/doctests.hsc
@@ -16,7 +16,9 @@
 module Main where
 
 import Build_doctests (deps)
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Control.Monad
 import Data.List
 import System.Directory
@@ -33,7 +35,9 @@
 foreign import stdcall "windows.h GetConsoleCP" c_GetConsoleCP :: IO CUInt
 ##elif defined(x86_64_HOST_ARCH)
 ##define USE_CP
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Control.Exception
 import Foreign.C.Types
 foreign import ccall "windows.h SetConsoleCP" c_SetConsoleCP :: CUInt -> IO Bool
