diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -32,6 +32,7 @@
 # build to fail.
 script:
  # -v2 provides useful information for debugging
+ - cabal clean
  - cabal configure -v2 --enable-tests
 
  # this builds all libraries and executables
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,8 @@
+0.3.3
+-----
+* Added `bytes` and `binary` instances.
+* Compiles warning-free on GHC 7.10.
+
 0.3.2
 -----
 * Simplified `reifyConfig` internals.
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.2
+version:       0.3.3
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
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
@@ -55,14 +55,18 @@
   ) where
 
 import Control.Lens
+import Data.Binary
 import Data.Bits
 import Data.Bits.Extras
+import Data.Bytes.Serial
 import Data.Proxy
 import Data.Reflection
 import Data.Serialize
 import Data.Vector.Serialize ()
 import GHC.Int
+#if __GLASGOW_HASKELL__ < 710
 import GHC.Word
+#endif
 import Generics.Deriving hiding (to, D)
 #ifdef USE_TYPE_LITS
 import GHC.TypeLits
@@ -114,6 +118,12 @@
   {-# INLINE config #-}
 
 instance Serialize Config -- serialize as a number?
+
+instance Binary Config where
+  put = serialize
+  get = deserialize
+
+instance Serial Config
 
 -- | Precalculate constants for a given bucketing factor b
 hll :: Int -> Config
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
@@ -59,15 +59,19 @@
 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
+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
+#endif
 import           Generics.Deriving                             hiding (D, to)
 import           GHC.Int
 
@@ -109,6 +113,14 @@
 #endif
 
 instance Serialize (HyperLogLog p)
+
+instance Serial (HyperLogLog p) where
+  serialize (HyperLogLog v) = serialize (V.toList v)
+  deserialize = liftM (HyperLogLog . V.fromList) deserialize
+
+instance Binary (HyperLogLog p) where
+  put (HyperLogLog v) = Binary.put (V.toList v)
+  get = fmap (HyperLogLog . V.fromList) Binary.get
 
 class HasHyperLogLog a p | a -> p where
   hyperLogLog :: Lens' a (HyperLogLog p)
