diff --git a/.travis.yml b/.travis.yml
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
 # This Travis job script has been generated by a script via
 #
-#   make_travis_yml_2.hs 'lens-toml-parser.cabal'
+#   runghc make_travis_yml_2.hs 'lens-toml-parser.cabal'
 #
 # For more information, see https://github.com/hvr/multi-ghc-travis
 #
@@ -24,69 +24,76 @@
   - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar
   - rm -fv $HOME/.cabal/packages/hackage.haskell.org/01-index.tar.idx
 
+  - rm -rfv $HOME/.cabal/packages/head.hackage
+
 matrix:
   include:
     - compiler: "ghc-8.0.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
       addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.0.2], sources: [hvr-ghc]}}
-    - compiler: "ghc-8.2.1"
+    - compiler: "ghc-8.2.2"
     # env: TEST=--disable-tests BENCH=--disable-benchmarks
-      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.1], sources: [hvr-ghc]}}
+      addons: {apt: {packages: [ghc-ppa-tools,cabal-install-head,ghc-8.2.2], sources: [hvr-ghc]}}
 
 before_install:
- - HC=${CC}
- - HCPKG=${HC/ghc/ghc-pkg}
- - unset CC
- - PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$PATH
- - PKGNAME='lens-toml-parser'
+  - HC=${CC}
+  - HCPKG=${HC/ghc/ghc-pkg}
+  - unset CC
+  - ROOTDIR=$(pwd)
+  - mkdir -p $HOME/.local/bin
+  - "PATH=/opt/ghc/bin:/opt/ghc-ppa-tools/bin:$HOME/local/bin:$PATH"
+  - HCNUMVER=$(( $(${HC} --numeric-version|sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]+).*/\1 * 10000 + \2 * 100 + \3/') ))
+  - echo $HCNUMVER
 
 install:
- - cabal --version
- - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
- - BENCH=${BENCH---enable-benchmarks}
- - TEST=${TEST---enable-tests}
- - HADDOCK=${HADDOCK-true}
- - INSTALLED=${INSTALLED-true}
- - travis_retry cabal update -v
- - sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config
- - rm -fv cabal.project.local
- - "echo 'packages: .' > cabal.project"
- - rm -f cabal.project.freeze
- - cabal new-build -w ${HC} ${TEST} ${BENCH} --dep -j2 all
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --dep -j2 all
+  - cabal --version
+  - echo "$(${HC} --version) [$(${HC} --print-project-git-commit-id 2> /dev/null || echo '?')]"
+  - BENCH=${BENCH---enable-benchmarks}
+  - TEST=${TEST---enable-tests}
+  - HADDOCK=${HADDOCK-true}
+  - INSTALLED=${INSTALLED-true}
+  - GHCHEAD=${GHCHEAD-false}
+  - travis_retry cabal update -v
+  - "sed -i.bak 's/^jobs:/-- jobs:/' ${HOME}/.cabal/config"
+  - rm -fv cabal.project cabal.project.local
+  - grep -Ev -- '^\s*--' ${HOME}/.cabal/config | grep -Ev '^\s*$'
+  - "printf 'packages: \".\"\\n' > cabal.project"
+  - cat cabal.project
+  - if [ -f "./configure.ac" ]; then
+      (cd "." && autoreconf -i);
+    fi
+  - rm -f cabal.project.freeze
+  - cabal new-build -w ${HC} ${TEST} ${BENCH} --project-file="cabal.project" --dep -j2 all
+  - cabal new-build -w ${HC} --disable-tests --disable-benchmarks --project-file="cabal.project" --dep -j2 all
+  - rm -rf .ghc.environment.* "."/dist
+  - DISTDIR=$(mktemp -d /tmp/dist-test.XXXX)
 
 # 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:
- - if [ -f configure.ac ]; then autoreconf -i; fi
- - rm -rf .ghc.environment.* dist/
- - cabal sdist # test that a source-distribution can be generated
- - cd dist/
- - SRCTAR=(${PKGNAME}-*.tar.gz)
- - SRC_BASENAME="${SRCTAR/%.tar.gz}"
- - tar -xvf "./$SRC_BASENAME.tar.gz"
- - cd "$SRC_BASENAME/"
-## from here on, CWD is inside the extracted source-tarball
- - rm -fv cabal.project.local
- - "echo 'packages: .' > cabal.project"
- # this builds all libraries and executables (without tests/benchmarks)
- - rm -f cabal.project.freeze
- - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
- # this builds all libraries and executables (including tests/benchmarks)
- # - rm -rf ./dist-newstyle
+  # test that source-distributions can be generated
+  - (cd "." && cabal sdist)
+  - mv "."/dist/lens-toml-parser-*.tar.gz ${DISTDIR}/
+  - cd ${DISTDIR} || false
+  - find . -maxdepth 1 -name '*.tar.gz' -exec tar -xvf '{}' \;
+  - "printf 'packages: lens-toml-parser-*/*.cabal\\n' > cabal.project"
+  - cat cabal.project
+  # this builds all libraries and executables (without tests/benchmarks)
+  - cabal new-build -w ${HC} --disable-tests --disable-benchmarks all
 
- # Build with installed constraints for packages in global-db
- - if $INSTALLED; then
-     echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh;
-   else echo "Not building with installed constraints"; fi
+  # Build with installed constraints for packages in global-db
+  - if $INSTALLED; then echo cabal new-build -w ${HC} --disable-tests --disable-benchmarks $(${HCPKG} list --global --simple-output --names-only | sed 's/\([a-zA-Z0-9-]\{1,\}\) */--constraint="\1 installed" /g') all | sh; else echo "Not building with installed constraints"; fi
 
- # build & run tests, build benchmarks
- - cabal new-build -w ${HC} ${TEST} ${BENCH} all
- - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} all; fi
+  # build & run tests, build benchmarks
+  - cabal new-build -w ${HC} ${TEST} ${BENCH} all
+  - if [ "x$TEST" = "x--enable-tests" ]; then cabal new-test -w ${HC} ${TEST} ${BENCH} all; fi
 
- # haddock
- - rm -rf ./dist-newstyle
- - if $HADDOCK; then cabal new-haddock -w ${HC} --disable-tests --disable-benchmarks all; else echo "Skipping haddock generation";fi
+  # cabal check
+  - (cd lens-toml-parser-* && cabal check)
+
+  # haddock
+  - rm -rf ./dist-newstyle
+  - if $HADDOCK; then cabal new-haddock -w ${HC} ${TEST} ${BENCH} all; else echo "Skipping haddock generation";fi
 
 # REGENDATA ["lens-toml-parser.cabal"]
 # EOF
diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -8,3 +8,8 @@
 
 * Added `INLINE` pragmas.
 * Updated tests.
+
+## 0.1.0.2  -- 2018-04-22
+
+* Refactored (used `Right` instead of `pure` in prism definitions).
+* Simplified tests/Main.hs to appease hlint.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2017 Henry Till
+Copyright (c) 2017-2018 Henry Till
 
 Permission to use, copy, modify, and/or distribute this software for any purpose
 with or without fee is hereby granted, provided that the above copyright notice
diff --git a/lens-toml-parser.cabal b/lens-toml-parser.cabal
--- a/lens-toml-parser.cabal
+++ b/lens-toml-parser.cabal
@@ -2,19 +2,19 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                lens-toml-parser
-version:             0.1.0.1
+version:             0.1.0.2
 synopsis:            Lenses for toml-parser
-description:         Lenses for toml-parser
+description:         This library provides lenses for toml-parser.
 license:             ISC
 license-file:        LICENSE
 author:              Henry Till
 maintainer:          henrytill@gmail.com
 homepage:            https://github.com/xngns/lens-toml-parser
-copyright:           Copyright (c) 2017, Henry Till
+copyright:           Copyright (c) 2017-2018, Henry Till
 category:            Language, Lenses
 build-type:          Simple
 cabal-version:       >=1.10
-tested-with:         GHC == 8.0.2, GHC == 8.2.1
+tested-with:         GHC == 8.0.2, GHC == 8.2.2
 
 extra-source-files:
   .gitignore
@@ -58,7 +58,7 @@
   type:                exitcode-stdio-1.0
   main-is:             HLint.hs
   build-depends:       base
-                     , hlint >= 1.9
+                     , hlint >= 1.9 && <2.2
   hs-source-dirs:      tests
   default-language:    Haskell2010
   ghc-options:         -Wall
diff --git a/src/TOML/Lens.hs b/src/TOML/Lens.hs
--- a/src/TOML/Lens.hs
+++ b/src/TOML/Lens.hs
@@ -56,7 +56,7 @@
   -> p Value (f Value)
 _Table =
   prism Table $ \ n -> case n of
-    Table v -> pure v
+    Table v -> Right v
     _       -> Left n
 {-# INLINE _Table #-}
 
@@ -67,7 +67,7 @@
   -> p Value (f Value)
 _List =
   prism List $ \ n -> case n of
-    List v -> pure v
+    List v -> Right v
     _      -> Left n
 {-# INLINE _List #-}
 
@@ -78,7 +78,7 @@
   -> p Value (f Value)
 _Double =
   prism Double $ \ n -> case n of
-    Double v -> pure v
+    Double v -> Right v
     _        -> Left n
 {-# INLINE _Double #-}
 
@@ -89,7 +89,7 @@
   -> p Value (f Value)
 _Integer =
   prism Integer $ \ n -> case n of
-    Integer v -> pure v
+    Integer v -> Right v
     _         -> Left n
 {-# INLINE _Integer #-}
 
@@ -100,7 +100,7 @@
   -> p Value (f Value)
 _String =
   prism String $ \ n -> case n of
-    String v -> pure v
+    String v -> Right v
     _        -> Left n
 {-# INLINE _String #-}
 
@@ -111,7 +111,7 @@
   -> p Value (f Value)
 _Bool =
   prism Bool $ \ n -> case n of
-    Bool v -> pure v
+    Bool v -> Right v
     _      -> Left n
 {-# INLINE _Bool #-}
 
@@ -122,7 +122,7 @@
   -> p Value (f Value)
 _ZonedTimeV =
   prism ZonedTimeV $ \ n -> case n of
-    ZonedTimeV v -> pure v
+    ZonedTimeV v -> Right v
     _            -> Left n
 {-# INLINE _ZonedTimeV #-}
 
@@ -133,7 +133,7 @@
   -> p Value (f Value)
 _LocalTimeV =
   prism LocalTimeV $ \ n -> case n of
-    LocalTimeV v -> pure v
+    LocalTimeV v -> Right v
     _            -> Left n
 {-# INLINE _LocalTimeV #-}
 
@@ -144,7 +144,7 @@
   -> p Value (f Value)
 _DayV =
   prism DayV $ \ n -> case n of
-    DayV v -> pure v
+    DayV v -> Right v
     _      -> Left n
 {-# INLINE _DayV #-}
 
@@ -155,6 +155,6 @@
   -> p Value (f Value)
 _TimeOfDayV =
   prism TimeOfDayV $ \ n -> case n of
-    TimeOfDayV v -> pure v
+    TimeOfDayV v -> Right v
     _            -> Left n
 {-# INLINE _TimeOfDayV #-}
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -140,6 +140,6 @@
 main :: IO ()
 main =  do
   ex <- readTOMLFile "./example/example-v0.4.0.toml"
-  rs <- pure (runTests ex)
+  let rs = runTests ex
   _  <- mapM_ print rs
   unless (all isPassed rs) exitFailure
