diff --git a/Network/TLS/Handshake/Common.hs b/Network/TLS/Handshake/Common.hs
--- a/Network/TLS/Handshake/Common.hs
+++ b/Network/TLS/Handshake/Common.hs
@@ -135,5 +135,6 @@
                         , sessionSecret  = ms
                         }
 
+extensionLookup :: ExtensionID -> [ExtensionRaw] -> Maybe Bytes
 extensionLookup toFind = fmap (\(ExtensionRaw _ content) -> content)
-                       . find (\(ExtensionRaw eid content) -> eid == toFind)
+                       . find (\(ExtensionRaw eid _) -> eid == toFind)
diff --git a/Network/TLS/Handshake/Signature.hs b/Network/TLS/Handshake/Signature.hs
--- a/Network/TLS/Handshake/Signature.hs
+++ b/Network/TLS/Handshake/Signature.hs
@@ -83,7 +83,7 @@
         Just HashSHA256 -> SHA256
         Just HashSHA1   -> SHA1
         Nothing         -> SHA1_MD5
-        Just hash       -> error ("unimplemented RSA signature hash type: " ++ show hash)
+        Just hsh        -> error ("unimplemented RSA signature hash type: " ++ show hsh)
 signatureHashData SignatureDSS mhash =
     case mhash of
         Nothing       -> SHA1
@@ -96,7 +96,7 @@
         Just HashSHA256 -> SHA256
         Just HashSHA1   -> SHA1
         Nothing         -> SHA1_MD5
-        Just hash       -> error ("unimplemented ECDSA signature hash type: " ++ show hash)
+        Just hsh        -> error ("unimplemented ECDSA signature hash type: " ++ show hsh)
 signatureHashData sig _ = error ("unimplemented signature type: " ++ show sig)
 
 --signatureCreate :: Context -> Maybe HashAndSignatureAlgorithm -> HashDescr -> Bytes -> IO DigitallySigned
diff --git a/Network/TLS/Parameters.hs b/Network/TLS/Parameters.hs
--- a/Network/TLS/Parameters.hs
+++ b/Network/TLS/Parameters.hs
@@ -1,3 +1,5 @@
+ {-# LANGUAGE CPP #-}
+
 -- |
 -- Module      : Network.TLS.Parameters
 -- License     : BSD-style
@@ -36,6 +38,9 @@
 import Network.TLS.RNG (Seed)
 import Data.Default.Class
 import qualified Data.ByteString as B
+#if __GLASGOW_HASKELL__ < 710
+import Data.Monoid (mempty)
+#endif
 
 type HostName = String
 
diff --git a/tls.cabal b/tls.cabal
--- a/tls.cabal
+++ b/tls.cabal
@@ -1,5 +1,5 @@
 Name:                tls
-Version:             1.3.7
+Version:             1.3.8
 Description:
    Native Haskell TLS and SSL protocol implementation for server and client.
    .
@@ -23,6 +23,7 @@
 Category:            Network
 stability:           experimental
 Cabal-Version:       >=1.8
+Tested-With:         GHC == 7.0.4, GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1
 Homepage:            http://github.com/vincenthz/hs-tls
 extra-source-files:  Tests/*.hs
                      CHANGELOG.md
@@ -40,7 +41,7 @@
   Default:           False
 
 Library
-  Build-Depends:     base >= 3 && < 5
+  Build-Depends:     base >= 4.3 && < 5
                    , mtl >= 2
                    , transformers
                    , cereal >= 0.4
@@ -113,7 +114,7 @@
                      Network.TLS.Types
                      Network.TLS.Wire
                      Network.TLS.X509
-  ghc-options:       -Wall -fwarn-tabs
+  ghc-options:       -Wall -fwarn-tabs -fno-warn-unused-imports
   if flag(compat)
     cpp-options:     -DSSLV2_COMPATIBLE
 
@@ -127,12 +128,12 @@
                    , data-default-class
                    , tasty
                    , tasty-quickcheck
+                   , tls
                    , QuickCheck
                    , cryptonite
                    , bytestring
                    , x509
                    , x509-validation
-                   , tls
                    , hourglass
   ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures -fwarn-tabs
 
@@ -152,6 +153,7 @@
                    , hourglass
                    , QuickCheck >= 2
                    , tasty-quickcheck
+                   , tls
 
 source-repository head
   type: git
