diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,11 @@
 `slist` uses [PVP Versioning][1].
 The changelog is available [on GitHub][2].
 
+## 0.3.0.0 – Jan 15, 2026
+
+* Support newer GHCs up to 9.12.
+* Drop support of GHC 8.2, GHC 8.4 and GHC 8.6
+
 ## 0.2.1.0 – Nov 3, 2022
 
 * [#56](https://github.com/kowainik/slist/issues/56):
diff --git a/slist.cabal b/slist.cabal
--- a/slist.cabal
+++ b/slist.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                slist
-version:             0.2.1.0
+version:             0.3.0.0
 synopsis:            Sized list
 description:         This package implements @Slist@ data structure that stores the size
                      of the list along with the list itself.
@@ -16,21 +16,22 @@
 build-type:          Simple
 extra-doc-files:     README.md
                    , CHANGELOG.md
-tested-with:         GHC == 8.2.2
-                   , GHC == 8.4.4
-                   , GHC == 8.6.5
-                   , GHC == 8.8.4
+tested-with:         GHC == 8.8.4
                    , GHC == 8.10.7
                    , GHC == 9.0.2
                    , GHC == 9.2.4
-                   , GHC == 9.4.2
+                   , GHC == 9.4.8
+                   , GHC == 9.6.7
+                   , GHC == 9.8.4
+                   , GHC == 9.10.3
+                   , GHC == 9.12.3
 
 source-repository head
   type:                git
   location:            https://github.com/kowainik/slist.git
 
 common common-options
-  build-depends:       base >= 4.10.1.0 && < 4.18
+  build-depends:       base >= 4.13 && < 4.23
 
   ghc-options:         -Wall
                        -Wincomplete-uni-patterns
@@ -39,8 +40,7 @@
                        -Widentities
                        -Wredundant-constraints
                        -fhide-source-paths
-  if impl(ghc >= 8.8.1)
-    ghc-options:       -Wmissing-deriving-strategies
+                       -Wmissing-deriving-strategies
                        -Werror=missing-deriving-strategies
   if impl(ghc >= 8.10.1)
     ghc-options:       -Wunused-packages
@@ -69,7 +69,7 @@
 
 library
   import:              common-options
-  build-depends:       containers >= 0.5 && <= 0.7
+  build-depends:       containers >= 0.5 && <= 0.9
   hs-source-dirs:      src
   exposed-modules:     Slist
                          Slist.Containers
@@ -93,9 +93,9 @@
   main-is:             Spec.hs
   other-modules:       Test.Slist.Size
   build-depends:       slist
-                     , hedgehog >= 1.0 && < 1.3
+                     , hedgehog >= 1.0 && < 1.8
                      , hspec
-                     , hspec-hedgehog ^>= 0.0.1
+                     , hspec-hedgehog >= 0.0.1 && < 0.4
   ghc-options:         -threaded
                        -rtsopts
                        -with-rtsopts=-N
diff --git a/src/Slist.hs b/src/Slist.hs
--- a/src/Slist.hs
+++ b/src/Slist.hs
@@ -238,7 +238,9 @@
 
 import Data.Bifunctor (bimap, first, second)
 import Data.Either (partitionEithers)
+#if ( __GLASGOW_HASKELL__ < 910 )
 import Data.Foldable (foldl')
+#endif
 #if ( __GLASGOW_HASKELL__ == 802 )
 import Data.Semigroup (Semigroup (..))
 #endif
diff --git a/src/Slist/Type.hs b/src/Slist/Type.hs
--- a/src/Slist/Type.hs
+++ b/src/Slist/Type.hs
@@ -26,7 +26,12 @@
     , map
     ) where
 
+#if ( __GLASGOW_HASKELL__ >= 906 )
+import Control.Applicative (Alternative (empty, (<|>)))
+#else
 import Control.Applicative (Alternative (empty, (<|>)), liftA2)
+#endif
+
 #if ( __GLASGOW_HASKELL__ == 802 )
 import Data.Semigroup (Semigroup (..))
 #endif
@@ -140,7 +145,7 @@
     foldr f b = foldr f b . sList
     {-# INLINE foldr #-}
 
-    -- | Is the element in the structure?
+    -- Is the element in the structure?
     elem :: (Eq a) => a -> Slist a -> Bool
     elem a = elem a . sList
     {-# INLINE elem #-}
