diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.0.1.1
+
+- Exclude GHC 7.8 base (it wasn't properly supported anyhow).
+- More generous bounds for other packages.
+
 # 0.0.1.0
 
 - Better error messages. Error messages now contain failing predicate, failing
diff --git a/servant-quickcheck.cabal b/servant-quickcheck.cabal
--- a/servant-quickcheck.cabal
+++ b/servant-quickcheck.cabal
@@ -1,5 +1,5 @@
 name:                servant-quickcheck
-version:             0.0.1.0
+version:             0.0.1.1
 synopsis:            QuickCheck entire APIs
 description:
  This packages provides QuickCheck properties that are tested across an entire
@@ -27,30 +27,28 @@
                      , Servant.QuickCheck.Internal.QuickCheck
                      , Servant.QuickCheck.Internal.Equality
                      , Servant.QuickCheck.Internal.ErrorTypes
-  build-depends:       base >=4.7 && <4.9
+  build-depends:       base >=4.8 && <4.9
                      , base-compat == 0.9.*
-                     , QuickCheck == 2.8.*
+                     , aeson > 0.8 && < 0.12
                      , bytestring == 0.10.*
-                     , aeson > 0.10 && < 0.12
-                     , mtl == 2.2.*
+                     , case-insensitive == 1.2.*
+                     , data-default-class == 0.0.*
+                     , hspec == 2.2.*
                      , http-client == 0.4.*
-                     , http-types == 0.9.*
                      , http-media == 0.6.*
-                     , servant-client == 0.7.*
-                     , servant-server == 0.7.*
-                     , string-conversions == 0.4.*
-                     , data-default-class == 0.0.*
-                     , servant == 0.7.*
-                     , warp >= 3.2.4 && < 3.3
+                     , http-types > 0.8 && < 0.10
+                     , mtl > 2.1 && < 2.3
+                     , pretty == 1.1.*
                      , process == 1.2.*
-                     , temporary == 1.2.*
+                     , QuickCheck > 2.7 && < 2.9
+                     , servant > 0.6 && < 0.9
+                     , servant-client > 0.6 && < 0.9
+                     , servant-server > 0.6 && < 0.9
                      , split == 0.2.*
-                     , case-insensitive == 1.2.*
-                     , hspec == 2.2.*
+                     , string-conversions > 0.3 && < 0.5
+                     , temporary == 1.2.*
                      , text == 1.*
-                     , pretty == 1.1.*
-  if impl(ghc < 7.10)
-    build-depends:     bifunctors == 5.*
+                     , warp >= 3.2.4 && < 3.3
 
   hs-source-dirs:      src
   default-extensions:  TypeOperators
@@ -68,6 +66,7 @@
                      , OverloadedStrings
                      , FunctionalDependencies
                      , NoImplicitPrelude
+                     , DeriveDataTypeable
   default-language:    Haskell2010
 
 test-suite spec
diff --git a/src/Servant/QuickCheck/Internal/ErrorTypes.hs b/src/Servant/QuickCheck/Internal/ErrorTypes.hs
--- a/src/Servant/QuickCheck/Internal/ErrorTypes.hs
+++ b/src/Servant/QuickCheck/Internal/ErrorTypes.hs
@@ -4,6 +4,7 @@
 import qualified Data.ByteString.Lazy    as LBS
 import           Data.String.Conversions (cs)
 import qualified Data.Text               as T
+import           Data.Typeable           (Typeable)
 import           GHC.Generics            (Generic)
 import qualified Network.HTTP.Client     as C
 import           Network.HTTP.Types      (Header, statusCode)
@@ -12,7 +13,7 @@
 
 data PredicateFailure
   = PredicateFailure T.Text (Maybe C.Request) (C.Response LBS.ByteString)
-  deriving (Generic)
+  deriving (Typeable, Generic)
 
 instance Exception ServerEqualityFailure where
 
@@ -22,7 +23,7 @@
 
 data ServerEqualityFailure
   = ServerEqualityFailure C.Request (C.Response LBS.ByteString) (C.Response LBS.ByteString)
-  deriving (Generic)
+  deriving (Typeable, Generic)
 
 instance Show ServerEqualityFailure where
   show = render . prettyServerEqualityFailure
diff --git a/src/Servant/QuickCheck/Internal/Predicates.hs b/src/Servant/QuickCheck/Internal/Predicates.hs
--- a/src/Servant/QuickCheck/Internal/Predicates.hs
+++ b/src/Servant/QuickCheck/Internal/Predicates.hs
@@ -1,10 +1,8 @@
 module Servant.QuickCheck.Internal.Predicates where
 
-import           Control.Exception     (SomeException, catch, throw)
-import           Control.Monad         (ap, guard, liftM2)
-import           Control.Monad.Reader
+import           Control.Exception     (catch, throw)
+import           Control.Monad         (when, unless, liftM2)
 import           Data.Aeson            (Object, decode)
-import           Data.Bifunctor        (Bifunctor (..))
 import qualified Data.ByteString       as SBS
 import qualified Data.ByteString.Char8 as SBSC
 import qualified Data.ByteString.Lazy  as LBS
@@ -13,12 +11,10 @@
 import           Data.List.Split       (wordsBy)
 import           Data.Maybe            (fromMaybe, isJust)
 import           Data.Monoid           ((<>))
-import           Data.Text             (Text)
 import           GHC.Generics          (Generic)
 import           Network.HTTP.Client   (Manager, Request, Response, httpLbs,
-                                        method, parseUrl, requestHeaders,
-                                        responseBody, responseHeaders,
-                                        responseStatus)
+                                        method, requestHeaders, responseBody,
+                                        responseHeaders, parseUrl, responseStatus)
 import           Network.HTTP.Media    (matchAccept)
 import           Network.HTTP.Types    (methodGet, methodHead, parseMethod,
                                         renderStdMethod, status100, status200,
@@ -134,7 +130,7 @@
                                         | m <- [minBound .. maxBound ]
                                         , renderStdMethod m /= method req ]
       case filter pred' resp of
-        (x:xs) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x
+        (x:_) -> throw $ PredicateFailure "notAllowedContainsAllowHeader" (Just req) x
         []     -> return resp
     where
       pred' resp = responseStatus resp == status405 && not (hasValidHeader "Allow" go resp)
diff --git a/src/Servant/QuickCheck/Internal/QuickCheck.hs b/src/Servant/QuickCheck/Internal/QuickCheck.hs
--- a/src/Servant/QuickCheck/Internal/QuickCheck.hs
+++ b/src/Servant/QuickCheck/Internal/QuickCheck.hs
@@ -5,9 +5,6 @@
 import           Control.Monad            (unless)
 import qualified Data.ByteString.Lazy     as LBS
 import           Data.Proxy               (Proxy)
-import           Data.String              (IsString (..))
-import           Data.Text                (Text)
-import           GHC.Generics             (Generic)
 import qualified Network.HTTP.Client      as C
 import           Network.Wai.Handler.Warp (withApplication)
 import           Prelude.Compat
@@ -87,7 +84,7 @@
       assert False
   case r of
     Success {} -> return ()
-    f@Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $
+    Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $
       "Failed:\n" ++ show x
     GaveUp { numTests = n } -> expectationFailure $ "Gave up after " ++ show n ++ " tests"
     NoExpectedFailure {} -> expectationFailure $ "No expected failure"
@@ -121,11 +118,11 @@
      v <- run $ finishPredicates preds (noCheckStatus req) defManager
      run $ modifyMVar_ deetsMVar $ const $ return v
      case v of
-       Just x -> assert False
+       Just _ -> assert False
        _ -> return ()
   case r of
     Success {} -> return ()
-    f@Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $
+    Failure{..} -> readMVar deetsMVar >>= \x -> expectationFailure $
       "Failed:\n" ++ show x
     GaveUp { numTests = n } -> expectationFailure $ "Gave up after " ++ show n ++ " tests"
     NoExpectedFailure {} -> expectationFailure $ "No expected failure"
