diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,7 +8,7 @@
 
 ## 0.2.1.0 - 2023-10-30
 
-* `Eq`, `Ord`, `Show`, `Applicative` and `Monad` instances
+* ADDED: `Eq`, `Ord`, `Show`, `Applicative` and `Monad` instances
 
 ## 0.1.0.0 - 2023-03-15
 
diff --git a/agreeing.cabal b/agreeing.cabal
--- a/agreeing.cabal
+++ b/agreeing.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           agreeing
-version:        0.2.1.0
+version:        0.2.2.0
 synopsis:       Idiomatic data structure for agreement
 description:    Please see the README on GitHub at <https://github.com/jcranch/agreeing#readme>
 category:       Data
diff --git a/src/Data/Agreement.hs b/src/Data/Agreement.hs
--- a/src/Data/Agreement.hs
+++ b/src/Data/Agreement.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 -- | A simple data structure helping us ask questions of the following
 -- sort: "does all this data have the same /BLANK/ and if so what is
 -- it?"
@@ -28,11 +30,15 @@
 -- This however cannot possibly correspond to a `Monad` instance (if
 -- the first argument of `>>=` is Anybody, there's no way of
 -- inspecting the second). We thus choose another, which does.
-
 module Data.Agreement (
   Agreement(..),
   getSomebody,
   ) where
+
+#if MIN_VERSION_GLASGOW_HASKELL(9,6,0,0)
+#else
+import Control.Applicative (liftA2)
+#endif
 
 import Data.Semigroup (Semigroup(..),
                        stimesIdempotentMonoid)
