diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for primitive-sort
 
+## 0.1.2.4 -- 2024-02-07
+
+* Restore import for `liftA2` that caused tests to fail for GHC 9.4.
+
 ## 0.1.2.3 -- 2024-02-06
 
 * Restore support for GHC 9.2 and GHC 9.4, which had been broken by
diff --git a/primitive-sort.cabal b/primitive-sort.cabal
--- a/primitive-sort.cabal
+++ b/primitive-sort.cabal
@@ -1,6 +1,6 @@
 cabal-version:   2.2
 name:            primitive-sort
-version:         0.1.2.3
+version:         0.1.2.4
 synopsis:        Sort primitive arrays
 description:
   This library provides a stable sorting algorithm for primitive arrays.
@@ -21,14 +21,17 @@
   CHANGELOG.md
   README.md
 
+tested-with:     GHC ==9.4.8 || ==9.6.3 || ==9.8.1
+
 common build-settings
   default-language: Haskell2010
-  ghc-options:      -O2 -Wall -Wunused-packages
+  ghc-options:      -Wall -Wunused-packages
 
 library
   import:          build-settings
   hs-source-dirs:  src
   exposed-modules: Data.Primitive.Sort
+  ghc-options:     -O2
   build-depends:
     , base        >=0.4.16 && <5
     , contiguous  >=0.6    && <0.7
@@ -64,7 +67,7 @@
     , primitive-sort
     , random
 
-  ghc-options:    -threaded -rtsopts -with-rtsopts=-N1
+  ghc-options:    -O2 -threaded -rtsopts -with-rtsopts=-N1
   hs-source-dirs: bench
   main-is:        Main.hs
 
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -24,6 +24,7 @@
 import Data.Word
 import Type.Reflection (TypeRep, typeRep)
 
+import qualified Control.Applicative as A
 import qualified Data.Map as M
 import qualified Data.Primitive as P
 import qualified Data.Primitive.Sort
@@ -332,7 +333,7 @@
             P.writeByteArray tags ix n
             go as (ix + 1)
     go vs 0
-    liftA2 (,) (P.unsafeFreezeByteArray arr) (P.unsafeFreezeByteArray tags)
+    A.liftA2 (,) (P.unsafeFreezeByteArray arr) (P.unsafeFreezeByteArray tags)
 
 eqByteArray :: ByteArray -> ByteArray -> Bool
 eqByteArray paA paB =
@@ -362,7 +363,7 @@
   series = fmap tagFromTuple series
 
 instance (Arbitrary a, Arbitrary b) => Arbitrary (Tag a b) where
-  arbitrary = liftA2 Tag arbitrary arbitrary
+  arbitrary = A.liftA2 Tag arbitrary arbitrary
 
 tagFromTuple :: (a, b) -> Tag a b
 tagFromTuple (a, b) = Tag a b
