diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -15,3 +15,4 @@
 * [k0ral](https://github.com/k0ral)
 * [Michael Hatfield](https://github.com/mikehat)
 * [reactormonk](https://github.com/reactormonk)
+* [Oleg Grenrus](https://github.com/phadej)
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+0.2.3.3
+* Make buildable on GHC 8.2.1.
+
 0.2.3.2
 * Broaden dep on base.
 
diff --git a/test/URI/ByteStringTests.hs b/test/URI/ByteStringTests.hs
--- a/test/URI/ByteStringTests.hs
+++ b/test/URI/ByteStringTests.hs
@@ -4,13 +4,15 @@
 module URI.ByteStringTests (tests) where
 
 -------------------------------------------------------------------------------
+import           Control.Applicative      (Const (..))
 import qualified Blaze.ByteString.Builder as BB
 import           Data.ByteString          (ByteString)
 import qualified Data.ByteString.Char8    as B8
 import           Data.Either
+import           Data.Function.Compat     ((&))
+import           Data.Functor.Identity    (Identity (..))
 import qualified Data.Map.Strict          as M
 import           Data.Monoid
-import           Lens.Simple
 import           Test.Tasty
 import           Test.Tasty.HUnit
 import           Test.Tasty.QuickCheck
@@ -21,6 +23,15 @@
 import           URI.ByteString.Arbitrary ()
 -------------------------------------------------------------------------------
 import           URI.ByteStringQQTests    ()
+
+infixr 4 .~
+(.~) :: ((a -> Identity b) -> s -> Identity t) -> b -> s -> t
+(.~) l b s = runIdentity (l (const (Identity b)) s)
+
+infixl ^.
+(^.) :: s -> ((a -> Const a a) -> s -> Const a s) -> a
+s ^. l = getConst (l Const s)
+
 
 tests :: TestTree
 tests = testGroup "URI.Bytestring"
diff --git a/uri-bytestring.cabal b/uri-bytestring.cabal
--- a/uri-bytestring.cabal
+++ b/uri-bytestring.cabal
@@ -1,5 +1,5 @@
 name:                uri-bytestring
-version:             0.2.3.2
+version:             0.2.3.3
 synopsis:            Haskell URI parsing as ByteStrings
 description: uri-bytestring aims to be an RFC3986 compliant URI parser that uses efficient ByteStrings for parsing and representing the URI data.
 license:             BSD3
@@ -17,6 +17,7 @@
                    , GHC == 7.8.4
                    , GHC == 7.10.1
                    , GHC == 8.0.2
+                   , GHC == 8.2.1
 extra-source-files:
   README.md
   CONTRIBUTING.md
@@ -42,7 +43,7 @@
     , base             >= 4.6     && < 5
     , bytestring       >= 0.9.1   && < 0.11
     , blaze-builder    >= 0.3.0.0 && < 0.5
-    , template-haskell >= 2.9     && < 2.12
+    , template-haskell >= 2.9     && < 2.13
     , th-lift-instances >= 0.1.8  && < 0.2
     , containers
 
@@ -79,11 +80,12 @@
     , tasty-quickcheck
     , attoparsec
     , base
+    , base-compat >= 0.7.0
     , blaze-builder
     , bytestring
-    , lens-simple
     , quickcheck-instances
     , semigroups
+    , transformers
     , containers
     , generics-sop >= 0.2
   default-language:    Haskell2010
