diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+# 0.2.5
+* Fixed a minor compile error under GHC 9 caused by ambiguous use of "singleton".
+
 # 0.2.4
 * Now exporting KdMap.Static.TreeNode to facilitate advanced usage of the library.
 
diff --git a/kdt.cabal b/kdt.cabal
--- a/kdt.cabal
+++ b/kdt.cabal
@@ -2,7 +2,7 @@
 -- see http://haskell.org/cabal/users-guide/
 
 name:                kdt
-version:             0.2.4
+version:             0.2.5
 synopsis:            Fast and flexible k-d trees for various types of point queries.
 description:         This package includes static and dynamic versions of k-d trees,
                      as well as \"Map\" variants that store data at each point in the
@@ -38,7 +38,7 @@
   build-depends:       base >=4.6 && <5,
                        deepseq >=1.3,
                        heap >=1.0.0,
-                       deepseq-generics >=0.1.1.1
+                       deepseq-generics >=0.2.0.0
   hs-source-dirs:      lib-src
   default-language:    Haskell2010
 
@@ -52,7 +52,7 @@
                         kdt -any,
                         QuickCheck >=2.5,
                         deepseq >=1.3,
-                        deepseq-generics >=0.1.1.1
+                        deepseq-generics >=0.2.0.0
   default-language:     Haskell2010
 
 Test-Suite DynamicTest
@@ -65,7 +65,7 @@
                         kdt -any,
                         QuickCheck >=2.5,
                         deepseq >=1.3,
-                        deepseq-generics >=0.1.1.1
+                        deepseq-generics >=0.2.0.0
   default-language:     Haskell2010
 
 benchmark KDTBenchmark
@@ -75,7 +75,7 @@
   hs-source-dirs:       app-src
   ghc-options:          -Wall -O3
   -- ghc-prof-options:     -Wall -O3 -fprof-auto
-                        "-with-rtsopts=-p"
+  --                      "-with-rtsopts=-p"
   build-depends:        base >=4.6 && <5,
                         kdt -any,
                         MonadRandom >= 0.1.12,
@@ -84,5 +84,5 @@
                         QuickCheck >=2.5,
                         heap >=1.0.0,
                         deepseq >=1.3,
-                        deepseq-generics >=0.1.1.1
+                        deepseq-generics >=0.2.0.0
   default-language:     Haskell2010
diff --git a/lib-src/Data/KdMap/Dynamic.hs b/lib-src/Data/KdMap/Dynamic.hs
--- a/lib-src/Data/KdMap/Dynamic.hs
+++ b/lib-src/Data/KdMap/Dynamic.hs
@@ -49,8 +49,7 @@
 
 import Data.Bits
 import Data.Function
-import Data.List as L hiding (insert, null)
-import qualified Data.List (null)
+import qualified Data.List as L
 
 import Control.DeepSeq
 import Control.DeepSeq.Generics (genericRnf)
@@ -161,7 +160,8 @@
 nearest :: Real a => KdMap a p v -> p -> (p, v)
 nearest (KdMap ts _ d2 _) query =
   let nearests = map (`KDM.nearest` query) ts
-  in  if   Data.List.null nearests
+  --in  if   Data.List.null nearests
+  in  if L.null nearests
       then error "Called nearest on empty KdMap."
       else L.minimumBy (compare `on` (d2 query . fst)) nearests
 
