diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,1 +1,56 @@
 language: haskell
+
+env:
+  - GHCVER=7.4.2
+  - GHCVER=7.6.3
+  - GHCVER=7.8.3
+  - GHCVER=head
+
+matrix:
+  allow_failures:
+    - env: GHCVER=head
+
+before_install:
+  # If $GHCVER is the one travis has, don't bother reinstalling it.
+  # We can also have faster builds by installing some libraries with
+  # `apt`. If it isn't, install the GHC we want from hvr's PPA along
+  # with cabal-1.18.
+  - |
+    if [ $GHCVER = `ghc --numeric-version` ]; then
+      # Try installing some of the build-deps with apt-get for speed.
+      travis/cabal-apt-install --enable-tests $MODE
+      export CABAL=cabal
+    else
+      # Install the GHC we want from hvr's PPA
+      travis_retry sudo add-apt-repository -y ppa:hvr/ghc
+      travis_retry sudo apt-get update
+      travis_retry sudo apt-get install cabal-install-1.18 ghc-$GHCVER happy
+      export CABAL=cabal-1.18
+      export PATH=/opt/ghc/$GHCVER/bin:$PATH
+    fi
+  # Uncomment whenever hackage is down.
+  # - mkdir -p ~/.cabal && cp travis/config ~/.cabal/config && $CABAL update
+  - $CABAL update
+
+  # Update happy when building with GHC head
+  - |
+    if [ $GHCVER = "head" ] || [ $GHCVER = "7.8.3" ]; then
+      $CABAL install happy alex
+      export PATH=$HOME/.cabal/bin:$PATH
+    fi
+
+install:
+  - $CABAL install --dependencies-only --enable-tests
+  - $CABAL configure --enable-tests $MODE
+
+script:
+  - $CABAL build
+  - $CABAL test --show-details=always
+
+notifications:
+  irc:
+    channels:
+      - "irc.freenode.org#haskell-lens"
+    skip_join: true
+    template:
+      - "\x0313reflection\x03/\x0306%{branch}\x03 \x0314%{commit}\x03 %{build_url} %{message}"
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+# 1.5.1.1
+* Updated the link to the paper.
+* More examples.
+
 # 1.5.1
 * We no longer export Show (Q a) for GHC >= 7.4. This was causing random hangs when users tried to somehow run declaration splices from the REPL.
 * We no longer depend on tagged for GHC >= 7.8, since `Proxy` is now in `base`.
diff --git a/README.markdown b/README.markdown
--- a/README.markdown
+++ b/README.markdown
@@ -3,7 +3,7 @@
 
 [![Build Status](https://secure.travis-ci.org/ekmett/reflection.png?branch=master)](http://travis-ci.org/ekmett/reflection)
 
-This package provides an implementation of the ideas presented in [Functional Pearl: Implicit Configurations](http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf) by Oleg Kiselyov and Chung-Chieh Shan. However, the API has been implemented in a much more efficient manner.
+This package provides an implementation of the ideas presented in [Functional Pearl: Implicit Configurations](http://okmij.org/ftp/Haskell/tr-15-04.pdf) by Oleg Kiselyov and Chung-Chieh Shan. However, the API has been implemented in a much more efficient manner.
 
 Contact Information
 -------------------
diff --git a/fast/Data/Reflection.hs b/fast/Data/Reflection.hs
--- a/fast/Data/Reflection.hs
+++ b/fast/Data/Reflection.hs
@@ -34,7 +34,7 @@
 -- Pearl: Implicit Configurations paper by Oleg Kiselyov and
 -- Chung-chieh Shan.
 --
--- <http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf>
+-- <http://okmij.org/ftp/Haskell/tr-15-04.pdf>
 --
 -- The approach from the paper was modified to work with Data.Proxy
 -- and to cheat by using knowledge of GHC's internal representations
diff --git a/reflection.cabal b/reflection.cabal
--- a/reflection.cabal
+++ b/reflection.cabal
@@ -1,5 +1,5 @@
 name:           reflection
-version:        1.5.1
+version:        1.5.1.1
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett, Elliott Hird, Oleg Kiselyov and Chung-chieh Shan
@@ -15,16 +15,59 @@
 build-type:     Simple
 cabal-version:  >= 1.10
 description:
-  This package provides an implementation of the ideas presented in the paper
-  \"Functional Pearl: Implicit Configurations\" by Oleg Kiselyov and
-  Chung-chieh Shan. However, the API has been streamlined to improve performance.
+  This package addresses the /configuration problem/ which is
+  propogating configurations that are available at run-time, allowing
+  multible configurations to coexist without resorting to mutable
+  global variables or 'System.IO.Unsafe.unsafePerformIO'.
   .
-  The original paper can be obtained from
-  <http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf>.
+  An example is modular arithmetic where the modulus itself can be
+  supplied at run-time:
   .
-  For a summary of the approach taken by this library, along with more motivating
-  examples, see Austin Seipp's tutorial at
-  <https://www.fpcomplete.com/user/thoughtpolice/using-reflection>.
+  @
+    foo :: Modular s => Modulus s
+    foo = 1000 * 1000 * 5 + 2000
+  @ 
+  >>> withModulus 1280 foo
+  1040
+  .
+  given the following setup:
+  .
+  @
+    &#123;-# LANGUAGE ScopedTypeVariables, RankNTypes, ConstraintKinds, FlexibleContexts, UndecidableInstances #-&#125;
+  .
+    import Data.Proxy      (Proxy(Proxy))
+    import Data.Reflection (Reifies, reflect, reify)
+  @
+  .
+  and definitions:
+  .
+  @
+    data Modulus s = M &#123; getModulus :: Integer &#125;
+    type Modular s = 'Data.Reflection.Reifies' s Integer
+  .
+    normalize :: forall s. Modular s => Integer -> Modulus s
+    normalize n = M (mod n modulus) where
+    &#x20;  modulus = 'Data.Reflection.reflect' ('Data.Proxy.Proxy' :: 'Data.Proxy.Proxy' s)
+  .
+    instance Modular s => Num (Modulus s) where
+    &#x20;  M a + M b = normalize (a + b)
+    &#x20;  M a * M b = normalize (a * b)
+  .
+    withModulus :: Integer -> (forall s. Modular s => Modulus s) -> Integer
+    withModulus m v = 'Data.Reflection.reify' m (getModulus . asProxyOf v)
+    &#x20;  where
+    &#x20;  asProxyOf :: f s -> Proxy s -> f s
+    &#x20;  asProxyOf = const
+  @
+  .
+  That package is an implementation of the ideas presented in the
+  paper \"Functional Pearl: Implicit Configurations\" by Oleg Kiselyov
+  and Chung-chieh Shan (<http://okmij.org/ftp/Haskell/tr-15-04.pdf original paper>). However, the API has been streamlined to improve
+  performance.
+  .
+  Austin Seipp's tutorial <https://www.fpcomplete.com/user/thoughtpolice/using-reflection Reflecting values to types and back> provides a summary of the
+  approach taken by this library, along with more motivating
+  examples.
 
 extra-source-files:
   examples/Monoid.hs
diff --git a/slow/Data/Reflection.hs b/slow/Data/Reflection.hs
--- a/slow/Data/Reflection.hs
+++ b/slow/Data/Reflection.hs
@@ -23,7 +23,7 @@
 -- Pearl: Implicit Configurations paper by Oleg Kiselyov and
 -- Chung-chieh Shan.
 --
--- <http://www.cs.rutgers.edu/~ccshan/prepose/prepose.pdf>
+-- <http://okmij.org/ftp/Haskell/tr-15-04.pdf>
 --
 -- The approach from the paper was modified to work with Data.Proxy
 -- and streamline the API by Edward Kmett and Elliott Hird.
