diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Changelog and Acknowledgements
 
+## 2.1.1.1
+* Updated library, tests, and docs for `mtl` 2.3 and `microlens-platform`
+  0.4.3.0.  The `mtl` part of this is pursuant to
+  [#30](https://github.com/sjshuck/hs-pcre2/issues/30).
+
 ## 2.1.1
 * Added pattern serialization API, which fixes
   [#23](https://github.com/sjshuck/hs-pcre2/issues/23).
diff --git a/pcre2.cabal b/pcre2.cabal
--- a/pcre2.cabal
+++ b/pcre2.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           pcre2
-version:        2.1.1
+version:        2.1.1.1
 synopsis:       Regular expressions via the PCRE2 C library (included)
 description:    Please see the README on GitHub at <https://github.com/sjshuck/hs-pcre2>
 category:       Text
diff --git a/src/hs/Text/Regex/Pcre2.hs b/src/hs/Text/Regex/Pcre2.hs
--- a/src/hs/Text/Regex/Pcre2.hs
+++ b/src/hs/Text/Regex/Pcre2.hs
@@ -180,7 +180,7 @@
     --
     -- 2.  A library providing combinators.  For lens newcomers, it is
     -- recommended to grab
-    -- [microlens-platform](https://hackage.haskell.org/package/microlens-platform)&#x2014;most
+    -- [microlens-platform](https://hackage.haskell.org/package/microlens-platform)&#x2014;all
     -- of the examples in this library work with it,
     -- @[packed](https://hackage.haskell.org/package/microlens-platform/docs/Lens-Micro-Platform.html#v:packed)@
     -- and
diff --git a/src/hs/Text/Regex/Pcre2/Internal.hs b/src/hs/Text/Regex/Pcre2/Internal.hs
--- a/src/hs/Text/Regex/Pcre2/Internal.hs
+++ b/src/hs/Text/Regex/Pcre2/Internal.hs
@@ -9,9 +9,11 @@
 
 import           Control.Applicative        (Alternative(..))
 import           Control.Exception
+import           Control.Monad
 import           Control.Monad.State.Strict
 import           Data.Either                (partitionEithers)
 import           Data.Foldable              (foldl', toList)
+import           Data.Function              (fix)
 import           Data.Functor.Identity      (Identity(..))
 import           Data.IORef
 import           Data.IntMap.Strict         (IntMap)
diff --git a/src/hs/Text/Regex/Pcre2/TH.hs b/src/hs/Text/Regex/Pcre2/TH.hs
--- a/src/hs/Text/Regex/Pcre2/TH.hs
+++ b/src/hs/Text/Regex/Pcre2/TH.hs
@@ -12,8 +12,9 @@
 
 module Text.Regex.Pcre2.TH where
 
-import           Control.Monad.State.Strict (evalStateT, forM)
 import           Control.Applicative        (Alternative(..))
+import           Control.Monad              (forM)
+import           Control.Monad.State.Strict (evalStateT)
 import           Data.IORef
 import qualified Data.IntMap.Strict         as IM
 import           Data.List.NonEmpty         (NonEmpty(..))
@@ -288,9 +289,6 @@
 -- _regex :: String -> Traversal' Text Text
 -- @
 --
--- > import Control.Lens
--- > import Data.Text.Lens
--- >
 -- > embeddedNumbers :: Traversal' String Int
 -- > embeddedNumbers = packed . [_regex|\d+|] . unpacked . _Show
 -- >
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -8,7 +8,8 @@
 
 import           Control.Applicative     (Alternative)
 import           Control.Exception       (catch, evaluate, handle)
-import           Control.Monad.RWS.Lazy  (ask, evalRWS, forM_, tell, void)
+import           Control.Monad           (forM_, void)
+import           Control.Monad.RWS.Lazy  (ask, evalRWS, tell)
 import           Data.IORef              (modifyIORef', newIORef, readIORef)
 import           Data.List.NonEmpty      (NonEmpty(..))
 import           Data.Text               (Text)
@@ -254,9 +255,3 @@
 
 broken :: (Alternative f) => Text -> f Text
 broken = match "*"
-
--- | @microlens@ doesn't have this yet as of 03/09/2022
-_Show :: (Read a, Show a) => Traversal' String a
-_Show f s = case reads s of
-    [(x, "")] -> show <$> f x
-    _         -> pure s
