diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,19 +1,56 @@
-language: haskell
-before_install:
-  # Uncomment whenever hackage is down.
-  # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && cabal update
-  - cabal update
+# NB: don't set `language: haskell` here
 
-  # Try installing some of the build-deps with apt-get for speed.
-  - travis/cabal-apt-install $mode
+# See also https://github.com/hvr/multi-ghc-travis for more information
+env:
+ # we have to use CABALVER=1.16 for GHC<7.6 as well, as there's
+ # no package for earlier cabal versions in the PPA
+ - GHCVER=7.4.2 CABALVER=1.16
+ - GHCVER=7.6.3 CABALVER=1.16
+ - GHCVER=7.8.4 CABALVER=1.18
+ - GHCVER=7.10.1 CABALVER=1.22
+ - GHCVER=head CABALVER=1.22
 
+matrix:
+  allow_failures:
+   - env: GHCVER=head CABALVER=1.22
+
+# Note: the distinction between `before_install` and `install` is not
+#       important.
+before_install:
+ - travis_retry sudo add-apt-repository -y ppa:hvr/ghc
+ - travis_retry sudo apt-get update
+ - travis_retry sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER
+ - export PATH=/opt/ghc/$GHCVER/bin:/opt/cabal/$CABALVER/bin:$PATH
+ - cabal --version
+
 install:
-  - cabal configure -flib-Werror $mode
-  - cabal build
+ - travis_retry cabal update
+ - cabal install --only-dependencies
 
+# 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
+# build to fail.
 script:
-  - $script && hlint src --cpp-define HLINT
+ # -v2 provides useful information for debugging
+ - cabal configure -v2
 
+ # this builds all libraries and executables
+ # (including tests/benchmarks)
+ - cabal build
+
+ # tests that a source-distribution can be generated
+ - cabal sdist
+
+ # check that the generated source-distribution can be built & installed
+ - export SRC_TGZ=$(cabal info . | awk '{print $2 ".tar.gz";exit}') ;
+   cd dist/;
+   if [ -f "$SRC_TGZ" ]; then
+      cabal install --force-reinstalls "$SRC_TGZ";
+   else
+      echo "expected '$SRC_TGZ' not found";
+      exit 1;
+   fi
+
 notifications:
   irc:
     channels:
@@ -21,6 +58,3 @@
     skip_join: true
     template:
       - "\x0313exceptions\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
-env:
-  - mode="--enable-tests" script="cabal test --show-details=always"
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.8.0.1
+-------
+* Resolved warnings on GHC 7.10 and with transformers 0.4.
+
 0.8
 ---
 * Use `transformers-compat` to allow support for `ExceptT` even on older `transformers` versions.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2013-2014 Edward Kmett
+Copyright 2013-2015 Edward Kmett
 Copyright 2012 Google Inc.
 
 All rights reserved.
diff --git a/exceptions.cabal b/exceptions.cabal
--- a/exceptions.cabal
+++ b/exceptions.cabal
@@ -1,6 +1,6 @@
 name:          exceptions
 category:      Control, Exceptions, Monad
-version:       0.8
+version:       0.8.0.1
 cabal-version: >= 1.8
 license:       BSD3
 license-file:  LICENSE
@@ -9,10 +9,10 @@
 stability:     provisional
 homepage:      http://github.com/ekmett/exceptions/
 bug-reports:   http://github.com/ekmett/exceptions/issues
-copyright:     Copyright (C) 2013-2014 Edward A. Kmett
+copyright:     Copyright (C) 2013-2015 Edward A. Kmett
                Copyright (C) 2012 Google Inc.
 build-type:    Simple
-tested-with:   GHC == 7.4.1, GHC == 7.6.1, GHC == 7.8.2
+tested-with:   GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.0.20150307
 synopsis:      Extensible optionally-pure exceptions
 description:   Extensible optionally-pure exceptions
 
diff --git a/src/Control/Monad/Catch.hs b/src/Control/Monad/Catch.hs
--- a/src/Control/Monad/Catch.hs
+++ b/src/Control/Monad/Catch.hs
@@ -18,9 +18,11 @@
 #ifndef MIN_VERSION_mtl
 #define MIN_VERSION_mtl(x,y,z) 1
 #endif
+
+{-# OPTIONS_GHC -fno-warn-deprecations #-}
 --------------------------------------------------------------------
 -- |
--- Copyright   :  (C) Edward Kmett 2013-2014, (c) Google Inc. 2012
+-- Copyright   :  (C) Edward Kmett 2013-2015, (c) Google Inc. 2012
 -- License     :  BSD-style (see the file LICENSE)
 -- Maintainer  :  Edward Kmett <ekmett@gmail.com>
 -- Stability   :  experimental
@@ -73,12 +75,6 @@
   , SomeException(..)
   ) where
 
-#if defined(__GLASGOW_HASKELL__) && (__GLASGOW_HASKELL__ >= 706)
-import Prelude hiding (foldr)
-#else
-import Prelude hiding (catch, foldr)
-#endif
-
 import Control.Exception (Exception(..), SomeException(..))
 import qualified Control.Exception as ControlException
 import qualified Control.Monad.STM as STM
@@ -96,9 +92,16 @@
 import Control.Monad.Trans.Cont (ContT)
 import Control.Monad.Trans.Identity
 import Control.Monad.Reader as Reader
-import Control.Monad.Trans.Reader (runReaderT)
-import Control.Monad.RWS
+
+#if __GLASGOW_HASKELL__ < 706
+import Prelude hiding (catch, foldr)
 import Data.Foldable
+import Data.Monoid
+#elif __GLASGOW_HASKELL__ < 710
+import Prelude hiding (foldr)
+import Data.Foldable
+import Data.Monoid
+#endif
 
 ------------------------------------------------------------------------------
 -- $mtl
diff --git a/src/Control/Monad/Catch/Pure.hs b/src/Control/Monad/Catch/Pure.hs
--- a/src/Control/Monad/Catch/Pure.hs
+++ b/src/Control/Monad/Catch/Pure.hs
@@ -20,7 +20,7 @@
 
 --------------------------------------------------------------------
 -- |
--- Copyright   :  (C) Edward Kmett 2013-2014, (c) Google Inc. 2012
+-- Copyright   :  (C) Edward Kmett 2013-2015, (c) Google Inc. 2012
 -- License     :  BSD-style (see the file LICENSE)
 -- Maintainer  :  Edward Kmett <ekmett@gmail.com>
 -- Stability   :  experimental
@@ -56,7 +56,9 @@
 import Control.Monad.Catch
 import Control.Monad.Reader as Reader
 import Control.Monad.RWS
+#if __GLASGOW_HASKELL__ < 710
 import Data.Foldable
+#endif
 import Data.Functor.Identity
 import Data.Traversable as Traversable
 
