diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,3 @@
+3.0.2
+-----------------------------------------------------------------------------
+- Add support for GHC 7.10.1
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
 CQL Binary Protocol Implementation
 ==================================
 
+[![Build Status](https://travis-ci.org/twittner/cql.svg?branch=develop)](https://travis-ci.org/twittner/cql)
+
 This Haskell library implements Cassandra's CQL Binary Protocol [Version 2][1]
 and [Version 3][2]. It provides encoding and decoding functionality as well as
 representations of the various protocol related types.
diff --git a/cql.cabal b/cql.cabal
--- a/cql.cabal
+++ b/cql.cabal
@@ -1,5 +1,5 @@
 name:                 cql
-version:              3.0.1
+version:              3.0.2
 synopsis:             Cassandra CQL binary protocol.
 stability:            experimental
 license:              OtherLicense
@@ -12,7 +12,7 @@
 category:             Database
 build-type:           Simple
 cabal-version:        >= 1.10
-extra-source-files:   README.md
+extra-source-files:   README.md, CHANGELOG.md
 
 description:
     Implementation of Cassandra's CQL Binary Protocol
diff --git a/src/Database/CQL/Protocol/Class.hs b/src/Database/CQL/Protocol/Class.hs
--- a/src/Database/CQL/Protocol/Class.hs
+++ b/src/Database/CQL/Protocol/Class.hs
@@ -17,6 +17,7 @@
 import Data.Time.Clock.POSIX
 import Data.UUID (UUID)
 import Database.CQL.Protocol.Types
+import Prelude
 
 -- | A type that can be converted from and to some CQL 'Value'.
 --
diff --git a/src/Database/CQL/Protocol/Codec.hs b/src/Database/CQL/Protocol/Codec.hs
--- a/src/Database/CQL/Protocol/Codec.hs
+++ b/src/Database/CQL/Protocol/Codec.hs
@@ -83,6 +83,7 @@
 import Data.Serialize hiding (decode, encode)
 import Database.CQL.Protocol.Types
 import Network.Socket (SockAddr (..), PortNumber (..))
+import Prelude
 
 import qualified Data.ByteString         as B
 import qualified Data.ByteString.Lazy    as LB
diff --git a/src/Database/CQL/Protocol/Header.hs b/src/Database/CQL/Protocol/Header.hs
--- a/src/Database/CQL/Protocol/Header.hs
+++ b/src/Database/CQL/Protocol/Header.hs
@@ -39,6 +39,7 @@
 import Data.Word
 import Database.CQL.Protocol.Codec
 import Database.CQL.Protocol.Types
+import Prelude
 
 -- | Protocol frame header.
 data Header = Header
diff --git a/src/Database/CQL/Protocol/Request.hs b/src/Database/CQL/Protocol/Request.hs
--- a/src/Database/CQL/Protocol/Request.hs
+++ b/src/Database/CQL/Protocol/Request.hs
@@ -70,6 +70,7 @@
 import Database.CQL.Protocol.Codec
 import Database.CQL.Protocol.Types
 import Database.CQL.Protocol.Header
+import Prelude
 
 import qualified Data.ByteString.Lazy as LB
 
diff --git a/src/Database/CQL/Protocol/Response.hs b/src/Database/CQL/Protocol/Response.hs
--- a/src/Database/CQL/Protocol/Response.hs
+++ b/src/Database/CQL/Protocol/Response.hs
@@ -69,6 +69,7 @@
 import Database.CQL.Protocol.Types
 import Database.CQL.Protocol.Header
 import Network.Socket (SockAddr)
+import Prelude
 
 import qualified Data.ByteString.Lazy as LB
 import qualified Data.Text            as T
diff --git a/src/Database/CQL/Protocol/Tuple.hs b/src/Database/CQL/Protocol/Tuple.hs
--- a/src/Database/CQL/Protocol/Tuple.hs
+++ b/src/Database/CQL/Protocol/Tuple.hs
@@ -2,6 +2,7 @@
 -- License, v. 2.0. If a copy of the MPL was not distributed with this
 -- file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+{-# LANGUAGE CPP                  #-}
 {-# LANGUAGE ScopedTypeVariables  #-}
 {-# LANGUAGE TemplateHaskell      #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
@@ -16,7 +17,9 @@
     , store
     ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Data.Serialize
 import Data.Word
 import Database.CQL.Protocol.Class
diff --git a/src/Database/CQL/Protocol/Tuple/TH.hs b/src/Database/CQL/Protocol/Tuple/TH.hs
--- a/src/Database/CQL/Protocol/Tuple/TH.hs
+++ b/src/Database/CQL/Protocol/Tuple/TH.hs
@@ -2,6 +2,7 @@
 -- License, v. 2.0. If a copy of the MPL was not distributed with this
 -- file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
+{-# LANGUAGE CPP                 #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 
 module Database.CQL.Protocol.Tuple.TH where
@@ -15,6 +16,7 @@
 import Database.CQL.Protocol.Codec (putValue, getValue)
 import Database.CQL.Protocol.Types
 import Language.Haskell.TH
+import Prelude
 
 -- Database.CQL.Protocol.Tuple does not export 'PrivateTuple' but only
 -- 'Tuple' effectively turning 'Tuple' into a closed type-class.
@@ -59,7 +61,11 @@
     vnames <- replicateM n (newName "a")
     let vtypes    = map VarT vnames
     let tupleType = foldl1 ($:) (TupleT n : vtypes)
-    let ctx       = map (\t -> ClassP cql [t]) vtypes
+#if MIN_VERSION_template_haskell(2,10,0)
+    let ctx = map (AppT (ConT cql)) vtypes
+#else
+    let ctx = map (\t -> ClassP cql [t]) vtypes
+#endif
     td <- tupleDecl n
     sd <- storeDecl n
     return
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -2,8 +2,8 @@
 -- License, v. 2.0. If a copy of the MPL was not distributed with this
 -- file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-{-# LANGUAGE FlexibleInstances    #-}
-{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE OverloadedStrings #-}
 
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 
@@ -24,6 +24,7 @@
 import Test.QuickCheck
 import Test.Tasty
 import Test.Tasty.QuickCheck
+import Prelude
 
 import qualified Data.ByteString.Lazy as LB
 import qualified Data.Text            as T
