diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.2.1.1
+
+- Support `base-4.16` (GHC-9.2)
+
 ## 0.2.1
 
 - Support `aeson-2.0.0.0`
diff --git a/src/Data/TreeDiff/Class.hs b/src/Data/TreeDiff/Class.hs
--- a/src/Data/TreeDiff/Class.hs
+++ b/src/Data/TreeDiff/Class.hs
@@ -379,8 +379,10 @@
 instance ToExpr a => ToExpr (Mon.Last a) where
 
 -- ...
+#if !MIN_VERSION_base(4,16,0)
 instance ToExpr a => ToExpr (Semi.Option a) where
     toExpr (Semi.Option x) = App "Option" [toExpr x]
+#endif
 instance ToExpr a => ToExpr (Semi.Min a) where
     toExpr (Semi.Min x) = App "Min" [toExpr x]
 instance ToExpr a => ToExpr (Semi.Max a) where
diff --git a/src/Data/TreeDiff/Parser.hs b/src/Data/TreeDiff/Parser.hs
--- a/src/Data/TreeDiff/Parser.hs
+++ b/src/Data/TreeDiff/Parser.hs
@@ -6,15 +6,18 @@
     exprParser
     ) where
 
-import Control.Applicative (optional, (<|>))
+import Control.Applicative (many, optional, (<|>))
 import Data.Char           (chr, isAlphaNum, isPunctuation, isSymbol)
 import Prelude ()
 import Prelude.Compat
 
-import Text.Parser.Char
-import Text.Parser.Combinators
+import Text.Parser.Char            (CharParsing (anyChar, char, satisfy))
+import Text.Parser.Combinators     (between, (<?>))
 import Text.Parser.Token
+       (TokenParsing (highlight, token), braces, brackets, commaSep,
+       hexadecimal, parens, symbolic)
 import Text.Parser.Token.Highlight
+       (Highlight (Identifier, StringLiteral, Symbol))
 
 import Data.TreeDiff.Expr
 
diff --git a/tree-diff.cabal b/tree-diff.cabal
--- a/tree-diff.cabal
+++ b/tree-diff.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               tree-diff
-version:            0.2.1
+version:            0.2.1.1
 synopsis:           Diffing of (expression) trees.
 category:           Data, Testing
 description:
@@ -55,6 +55,7 @@
      || ==8.8.4
      || ==8.10.4
      || ==9.0.1
+     || ==9.2.1
   , GHCJS ==8.4
 
 extra-source-files:
@@ -83,14 +84,14 @@
 
   -- GHC boot libraries
   build-depends:
-    , base        >=4.5      && <4.16
+    , base        >=4.5      && <4.17
     , bytestring  ^>=0.9.2.1 || ^>=0.10.0.2 || ^>=0.11.0.0
     , containers  ^>=0.4.2.1 || ^>=0.5.0.0 || ^>=0.6.0.1
     , deepseq     ^>=1.3.0.0 || ^>=1.4.0.0
     , parsec      ^>=3.1.13.0
     , pretty      ^>=1.1.1.0
-    , text        ^>=1.2.3.0
-    , time        ^>=1.4 || ^>=1.5.0.1 || ^>=1.6.0.1 || ^>=1.8.0.2 || ^>=1.9.3
+    , text        ^>=1.2.3.0 || ^>=2.0
+    , time        ^>=1.4 || ^>=1.5.0.1 || ^>=1.6.0.1 || ^>=1.8.0.2 || ^>=1.9.3 || ^>=1.10 || ^>=1.11 || ^>=1.12
 
   build-depends:
     , aeson                 ^>=1.4.6.0 || ^>=1.5.6.0 || ^>=2.0.0.0
@@ -98,7 +99,7 @@
     , ansi-wl-pprint        ^>=0.6.8.2
     , base-compat           ^>=0.10.5 || ^>=0.11.0 || ^>=0.12
     , bytestring-builder    ^>=0.10.8.2.0
-    , hashable              ^>=1.2.7.0 || ^>=1.3.0.0
+    , hashable              ^>=1.2.7.0 || ^>=1.3.0.0 || ^>=1.4.0.1
     , parsers               ^>=0.12.10
     , primitive             ^>=0.7.1.0
     , QuickCheck            ^>=2.14.2
@@ -115,7 +116,7 @@
     build-depends: ghc-prim
 
   if !impl(ghc >=8.0)
-    build-depends: semigroups ^>=0.19.1
+    build-depends: semigroups ^>=0.19.1 || ^>=0.20
 
   if !impl(ghc >=7.8)
     build-depends: generic-deriving >=1.13.1 && <1.15
