diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3
+
+- Depend on `foldable1-classes-compat` instead of `semigroupoids`.
+
 ## 0.2.1.1
 
 - `build-type: Simple`
diff --git a/src/Data/TDigest/Postprocess/Internal.hs b/src/Data/TDigest/Postprocess/Internal.hs
--- a/src/Data/TDigest/Postprocess/Internal.hs
+++ b/src/Data/TDigest/Postprocess/Internal.hs
@@ -26,13 +26,13 @@
     Affine (..),
     ) where
 
-import Data.Foldable           (toList, traverse_)
-import Data.Functor.Compose    (Compose (..))
-import Data.Functor.Identity   (Identity (..))
-import Data.List.NonEmpty      (NonEmpty (..), nonEmpty)
-import Data.Proxy              (Proxy (..))
-import Data.Semigroup          (Semigroup (..))
-import Data.Semigroup.Foldable (foldMap1)
+import Data.Foldable         (toList, traverse_)
+import Data.Foldable1        (foldMap1)
+import Data.Functor.Compose  (Compose (..))
+import Data.Functor.Identity (Identity (..))
+import Data.List.NonEmpty    (NonEmpty (..), nonEmpty)
+import Data.Proxy            (Proxy (..))
+import Data.Semigroup        (Semigroup (..))
 import Prelude ()
 import Prelude.Compat
 
diff --git a/src/Data/TDigest/Tree/NonEmpty.hs b/src/Data/TDigest/Tree/NonEmpty.hs
--- a/src/Data/TDigest/Tree/NonEmpty.hs
+++ b/src/Data/TDigest/Tree/NonEmpty.hs
@@ -60,14 +60,14 @@
 import Prelude ()
 import Prelude.Compat
 
-import Control.DeepSeq         (NFData (..))
-import Control.Monad           (when)
-import Data.Binary             (Binary (..))
-import Data.Functor.Identity   (Identity (..))
-import Data.Semigroup          (Semigroup (..))
-import Data.Semigroup.Foldable (Foldable1)
-import Data.Semigroup.Reducer  (Reducer (..))
-import GHC.TypeLits            (KnownNat)
+import Control.DeepSeq        (NFData (..))
+import Control.Monad          (when)
+import Data.Binary            (Binary (..))
+import Data.Foldable1         (Foldable1)
+import Data.Functor.Identity  (Identity (..))
+import Data.Semigroup         (Semigroup (..))
+import Data.Semigroup.Reducer (Reducer (..))
+import GHC.TypeLits           (KnownNat)
 
 import           Data.TDigest.Internal
 import qualified Data.TDigest.Postprocess   as PP
@@ -180,5 +180,5 @@
 -- >>> import Data.List.Compat (foldl')
 --
 -- >>> let merge [] ys = []; merge xs [] = xs; merge (x:xs) (y:ys) = x : y : merge xs ys
--- >>> let fairshuffle' xs = uncurry merge (splitAt (length xs `div` 2) xs)
+-- >>> let fairshuffle' xs = uncurry merge (splitAt (Prelude.length xs `div` 2) xs)
 -- >>> let fairshuffle xs = iterate fairshuffle' xs !! 5
diff --git a/tdigest.cabal b/tdigest.cabal
--- a/tdigest.cabal
+++ b/tdigest.cabal
@@ -1,6 +1,6 @@
 cabal-version:      >=1.10
 name:               tdigest
-version:            0.2.1.1
+version:            0.3
 synopsis:           On-line accumulation of rank-based statistics
 description:
   A new data structure for accurate on-line accumulation of rank-based statistics such as quantiles and trimmed means.
@@ -23,7 +23,11 @@
    || ==8.4.4
    || ==8.6.5
    || ==8.8.4
-   || ==8.10.3
+   || ==8.10.7
+   || ==9.0.2
+   || ==9.2.7
+   || ==9.4.4
+   || ==9.6.1
 
 build-type:         Simple
 extra-source-files:
@@ -42,21 +46,23 @@
 
   -- GHC boot libraries
   build-depends:
-      base          >=4.7     && <4.15
+      base          >=4.7     && <4.20
     , binary        >=0.7.1.0 && <0.10
     , deepseq       >=1.3.0.2 && <1.5
-    , transformers  >=0.3     && <0.6
+    , transformers  >=0.3     && <0.7
 
   if !impl(ghc >=8.0)
-    build-depends: semigroups >=0.18.4 && <0.20
+    build-depends: semigroups >=0.18.4 && <0.21
 
+  if !impl(ghc >=9.6)
+    build-depends: foldable1-classes-compat >=0.1 && <0.2
+
   -- other dependencies
   build-depends:
-      base-compat        >=0.10.1   && <0.12
+      base-compat        >=0.10.1   && <0.14
     , reducers           >=3.12.2   && <3.13
-    , semigroupoids      >=5.2.2    && <5.4
-    , vector             >=0.12.0.1 && <0.13
-    , vector-algorithms  >=0.7.0.1  && <0.9
+    , vector             >=0.12.0.1 && <0.14
+    , vector-algorithms  >=0.7.0.1  && <0.10
 
   exposed-modules:
     Data.TDigest
@@ -94,7 +100,7 @@
     , binary
     , deepseq
     , semigroups
-    , tasty              >=0.11.0.4 && <1.4
+    , tasty              >=0.11.0.4 && <1.5
     , tasty-quickcheck   >=0.8.4    && <0.11
     , tdigest
     , vector
