diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,21 +1,45 @@
-language: haskell
-before_install:
-  # Uncomment whenever hackage is down.
-  # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && cabal update
+env:
+ - GHCVER=7.0.1 CABALVER=1.16
+ - GHCVER=7.0.4 CABALVER=1.16
+ - GHCVER=7.2.2 CABALVER=1.16
+ - 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
 
-  # Try installing some of the build-deps with apt-get for speed.
-  - travis/cabal-apt-install $mode
+matrix:
+  allow_failures:
+   - env: GHCVER=7.0.1 CABALVER=1.16
+   - env: GHCVER=7.0.4 CABALVER=1.16
+   - env: GHCVER=7.2.2 CABALVER=1.16
+   - env: GHCVER=head CABALVER=1.22
 
+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
+ - export CABAL=cabal-$CABALVER
+ - $CABAL --version
+
 install:
-  - cabal install packunused packdeps
-  - cabal configure $mode
-  - cabal build --ghc-options=-ddump-minimal-imports
+ - travis_retry $CABAL update
+ - $CABAL install "Cabal == $CABALVER.*"
+ - $CABAL install --enable-tests --only-dependencies
 
 script:
-  - $script
-  - packdeps ad.cabal
-  - packunused
-  - hlint src --cpp-define HLINT --cpp-include include
+ - $CABAL configure -v2 --enable-tests
+ - $CABAL build
+ - $CABAL sdist
+ - export SRC_TGZ=$($CABAL info . | awk '{print $2 ".tar.gz";exit}') ;
+   cd dist/;
+   if [ -f "$SRC_TGZ" ]; then
+      $CABAL install "$SRC_TGZ";
+   else
+      echo "expected '$SRC_TGZ' not found";
+      exit 1;
+   fi
 
 notifications:
   irc:
@@ -23,7 +47,4 @@
       - "irc.freenode.org#haskell-lens"
     skip_join: true
     template:
-      - "\x0313ad\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
-
-env:
-  - mode="--enable-tests" script="cabal test --show-details=always"
+      - "\x0313ad\x0f/\x0306%{branch}\x0f \x0314%{commit}\x0f %{message} \x0302\x1f%{build_url}\x0f"
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+4.2.3
+-----
+* `reflection` 2 support
+
 4.2.2
 -----
 * *Major* bug fix for `grads`, `jacobians`, and anything that uses `Sparse` mode in `Numeric.AD`. Derivatives after the first two
diff --git a/ad.cabal b/ad.cabal
--- a/ad.cabal
+++ b/ad.cabal
@@ -1,17 +1,19 @@
-name:         ad
-version:      4.2.2
-license:      BSD3
-license-File: LICENSE
-copyright:    (c) Edward Kmett 2010-2015,
-              (c) Barak Pearlmutter and Jeffrey Mark Siskind 2008-2009
-author:       Edward Kmett
-maintainer:   ekmett@gmail.com
-stability:    Experimental
-category:     Math
-homepage:     http://github.com/ekmett/ad
-bug-reports:  http://github.com/ekmett/ad/issues
-build-type:   Custom
+name:          ad
+version:       4.2.3
+license:       BSD3
+license-File:  LICENSE
+copyright:     (c) Edward Kmett 2010-2015,
+               (c) Barak Pearlmutter and Jeffrey Mark Siskind 2008-2009
+author:        Edward Kmett
+maintainer:    ekmett@gmail.com
+stability:     Experimental
+category:      Math
+homepage:      http://github.com/ekmett/ad
+bug-reports:   http://github.com/ekmett/ad/issues
+build-type:    Custom
 cabal-version: >= 1.10
+tested-with:   GHC==7.0.1, GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1
+synopsis:      Automatic Differentiation
 extra-source-files:
   .ghci
   .gitignore
@@ -23,7 +25,6 @@
   travis/cabal-apt-install
   travis/config
   include/instances.h
-synopsis:     Automatic Differentiation
 description:
     Forward-, reverse- and mixed- mode automatic differentiation combinators with a common API.
     .
@@ -99,14 +100,14 @@
 
   build-depends:
     array            >= 0.2   && < 0.6,
-    base             >= 4.5   && < 5,
+    base             >= 4.3   && < 5,
     comonad          >= 4     && < 5,
     containers       >= 0.2   && < 0.6,
     data-reify       >= 0.6   && < 0.7,
     erf              >= 2.0   && < 2.1,
     free             >= 4.6.1 && < 5,
     nats             >= 0.1.2 && < 2,
-    reflection       >= 1.4   && < 2,
+    reflection       >= 1.4   && < 3,
     transformers     >= 0.3   && < 0.5
 
   if impl(ghc < 7.8)
@@ -162,8 +163,6 @@
     doctest >= 0.9.0.1 && <= 0.10,
     filepath
   ghc-options: -Wall -threaded
-  if impl(ghc<7.6)
-    ghc-options: -Werror
   hs-source-dirs: tests
 
 benchmark blackscholes
