diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,25 +1,33 @@
-env:
- - GHCVER=7.4.2 CABALVER=1.16
- - GHCVER=7.6.3 CABALVER=1.18
- - GHCVER=7.8.2 CABALVER=1.20
- - GHCVER=head CABALVER=1.20
-
-before_install:
- - sudo add-apt-repository -y ppa:hvr/ghc
- - sudo apt-get update
- - sudo apt-get install cabal-install-$CABALVER ghc-$GHCVER hlint
- - cabal-$CABALVER update
- - cabal-$CABALVER install happy -j
- - export PATH=/opt/ghc/$GHCVER/bin:~/.cabal/bin:$PATH
-
-install:
- - cabal-$CABALVER install --only-dependencies --enable-tests --enable-benchmarks -j
-
-script:
- - travis/script.sh
- - hlint src
-
+language: c
+sudo: false
+cache:
+  directories:
+    - $HOME/.cabsnap
+    - $HOME/.cabal/packages
+    - $HOME/tools
+before_cache:
+  - rm -f $HOME/.cabal/packages/hackage.haskell.org/build-reports.log
+  - rm -f $HOME/.cabal/packages/hackage.haskell.org/00-index.tar
+before_install: source travis/setup.sh
+install: travis/install.sh
+script: travis/script.sh
 matrix:
+  include:
+    - env: GHCVER=7.4.2 CABALVER=1.16
+      compiler: ": #GHC 7.4.2"
+      addons: {apt: {packages: [cabal-install-1.16, ghc-7.4.2, alex-3.1.4, happy-1.19.5], sources: [hvr-ghc]}}
+    - env: GHCVER=7.6.3 CABALVER=1.18
+      compiler: ": #GHC 7.6.3"
+      addons: {apt: {packages: [cabal-install-1.18, ghc-7.6.3, alex-3.1.4, happy-1.19.5], sources: [hvr-ghc]}}
+    - env: GHCVER=7.8.4 CABALVER=1.18
+      compiler: ": #GHC 7.8.4"
+      addons: {apt: {packages: [cabal-install-1.18, ghc-7.8.4, alex-3.1.4, happy-1.19.5], sources: [hvr-ghc]}}
+    - env: GHCVER=7.10.2 CABALVER=1.22 ROOT=1
+      compiler: ": #GHC 7.10.2"
+      addons: {apt: {packages: [cabal-install-1.22, ghc-7.10.2, alex-3.1.4, happy-1.19.5], sources: [hvr-ghc]}}
+    - env: GHCVER=head CABALVER=head ALLOW_NEWER="template-haskell"
+      compiler: ": #GHC head"
+      addons: {apt: {packages: [cabal-install-head, ghc-head, alex-3.1.4, happy-1.19.5], sources: [hvr-ghc]}}
   allow_failures:
-   - env: GHCVER=head CABALVER=1.20
+    - compiler: ": #GHC head"
   fast_finish: true
diff --git a/quickcheck-property-monad.cabal b/quickcheck-property-monad.cabal
--- a/quickcheck-property-monad.cabal
+++ b/quickcheck-property-monad.cabal
@@ -1,17 +1,22 @@
 name: quickcheck-property-monad
-version: 0.2.3
+version: 0.2.4
 cabal-version: >=1.10
 build-type: Custom
 license: BSD3
 license-file: LICENSE
-copyright: Copyright (C) 2013-2014 Benno Fünfstück
+copyright: Copyright (C) 2013-2015 Benno Fünfstück
 maintainer: Benno Fünfstück <benno.fuenfstueck@gmail.com>
 stability: experimental
 homepage: http://github.com/bennofs/quickcheck-property-monad/
 bug-reports: http://github.com/bennofs/quickcheck-property-monad/issues
-synopsis: quickcheck-property-monad
+synopsis: A monad for generating QuickCheck properties without Arbitrary instances.
 description:
-    quickcheck-property-monad
+    When your data has many invariants, it's often difficult to write Arbitrary
+    instances for QuickCheck. This library attempts to solve that
+    problem by providing a nice interface to write QuickCheck tests without using
+    Arbitrary instances. It aims to be somewhere in the middle between
+    HUnit and QuickCheck: Use the random test case generation of QuickCheck, but write
+    HUnit like assertions.
 category: Testing
 author: Benno Fünfstück
 extra-source-files:
@@ -20,47 +25,39 @@
     .travis.yml
     .vim.custom
     README.md
- 
+
 source-repository head
     type: git
     location: https://github.com/bennofs/quickcheck-property-monad.git
- 
+
 flag tests
-    Description:  Run tests (requires QuickCheck >= 2.7)
- 
+    description:
+        Run tests (requires QuickCheck >= 2.7)
+
 library
-    build-depends:
-        base >=4.5 && <4.8,
-        either >=4.1.1 && <4.4,
-        transformers >=0.3.0.0 && <0.5,
-        QuickCheck >=2.5.1.1 && <2.8
     exposed-modules:
         Test.QuickCheck.Property.Monad
-    exposed: True
-    buildable: True
+    build-depends:
+        base >=4.5 && <4.9,
+        either >=4.1.1 && <4.5,
+        transformers >=0.3.0.0 && <0.5,
+        QuickCheck >=2.5.1.1 && <2.9
     default-language: Haskell2010
     hs-source-dirs: src
     ghc-options: -Wall
- 
+
 test-suite doctests
-    build-depends:
-        base >=4.5 && <4.8,
-        directory >=1.1.0.2 && <1.3,
-        doctest >=0.9.11 && <0.10,
-        filepath >=1.3.0.0 && <1.4
-     
-    if impl(ghc <7.6.1)
-        buildable: True
-        ghc-options: -Werror
-     
     if flag(tests)
         build-depends:
-            QuickCheck ==2.7.*
-        buildable: True
+            QuickCheck >=2.7 && <2.9
     type: exitcode-stdio-1.0
     main-is: doctests.hs
     buildable: False
+    build-depends:
+        base >=4.5 && <4.9,
+        directory >=1.1.0.2 && <1.3,
+        doctest >=0.9.11 && <0.11,
+        filepath >=1.3.0.0 && <1.5
     default-language: Haskell2010
     hs-source-dirs: tests
     ghc-options: -Wall -threaded
- 
