diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,10 @@
 # Revision history for greskell
 
+## 2.0.3.1  -- 2024-09-12
+
+* Update dependency version bounds with cabal-plan-bounds.
+  This adds support for new packages, while drops support for old ones.
+
 ## 2.0.3.0  -- 2023-02-24
 
 * Add `GTraversal.Gen` module (see https://github.com/debug-ito/greskell/issues/15 )
diff --git a/greskell.cabal b/greskell.cabal
--- a/greskell.cabal
+++ b/greskell.cabal
@@ -1,5 +1,5 @@
 name:                   greskell
-version:                2.0.3.0
+version:                2.0.3.1
 author:                 Toshio Ito <debug.ito@gmail.com>
 maintainer:             Toshio Ito <debug.ito@gmail.com>
 license:                BSD3
@@ -12,7 +12,7 @@
                         It re-exports [greskell-core](http://hackage.haskell.org/package/greskell-core) package,
                         and adds some useful functions to it.
 category:               Data
-cabal-version:          >= 1.10
+cabal-version:          2.0
 build-type:             Simple
 extra-source-files:     README.md, ChangeLog.md,
                         test/graphson/*.json
@@ -40,16 +40,16 @@
                         Data.Greskell.NonEmptyLike,
                         Data.Greskell.Logic
   -- other-modules:        
-  build-depends:        base >=4.9.0.0 && <4.17,
-                        greskell-core >=0.1.3.0 && <1.1,
-                        text >=1.2.2.1 && <1.3,
-                        transformers >=0.5.2 && <0.6,
-                        aeson >=2.0.2.0 && <2.2,
-                        unordered-containers >=0.2.7.1 && <0.3,
-                        semigroups >=0.18.2 && <0.21,
-                        vector >=0.12.0.1 && <0.14,
-                        exceptions >=0.8.3 && <0.11,
-                        hashable >=1.2.7.0 && <1.5
+  build-depends:        base ^>=4.13.0 || ^>=4.14.0 || ^>=4.15.0 || ^>=4.16.0 || ^>=4.17.0 || ^>=4.18.0 || ^>=4.19.0 || ^>=4.20.0,
+                        greskell-core ^>=1.0.0,
+                        text ^>=1.2.3 || ^>=2.0.2 || ^>=2.1,
+                        transformers ^>=0.5.6 || ^>=0.6.1,
+                        aeson ^>=2.0.2 || ^>=2.1.0 || ^>=2.2.3,
+                        unordered-containers ^>=0.2.15,
+                        semigroups ^>=0.20,
+                        vector ^>=0.12.3 || ^>=0.13.0,
+                        exceptions ^>=0.10.4,
+                        hashable ^>=1.4.0
 
 test-suite spec
   type:                 exitcode-stdio-1.0
@@ -69,10 +69,14 @@
                         Data.Greskell.LogicSpec,
                         ExamplesSpec
   build-tool-depends:   hspec-discover:hspec-discover
-  build-depends:        base, text, aeson, unordered-containers,
-                        greskell, greskell-core,
-                        hspec >=2.2.3,
-                        bytestring >=0.10.8.1 && <0.12
+  build-depends:        base ^>=4.13.0 || ^>=4.14.0 || ^>=4.15.0 || ^>=4.16.0 || ^>=4.17.0 || ^>=4.18.0 || ^>=4.19.0 || ^>=4.20.0,
+                        text ^>=1.2.3 || ^>=2.0.2 || ^>=2.1,
+                        aeson ^>=2.0.2 || ^>=2.1.0 || ^>=2.2.3,
+                        unordered-containers ^>=0.2.15,
+                        greskell,
+                        greskell-core ^>=1.0.0,
+                        hspec ^>=2.9.1 || ^>=2.10.6 || ^>=2.11.9,
+                        bytestring ^>=0.10.9 || ^>=0.11.3 || ^>=0.12.0
 
 test-suite typecheck-test-suite
   type:                 exitcode-stdio-1.0
@@ -80,9 +84,10 @@
   hs-source-dirs:       test
   ghc-options:          -Wall -fno-warn-unused-imports "-with-rtsopts=-M512m"
   main-is:              Typecheck.hs
-  build-depends:        base, hspec,
+  build-depends:        base ^>=4.13.0 || ^>=4.14.0 || ^>=4.15.0 || ^>=4.16.0 || ^>=4.17.0 || ^>=4.18.0 || ^>=4.19.0 || ^>=4.20.0,
+                        hspec ^>=2.9.1 || ^>=2.10.6 || ^>=2.11.9,
                         greskell,
-                        should-not-typecheck >=2.1.0 && <2.2
+                        should-not-typecheck ^>=2.1.0
 
 flag server-test
   description: Do tests with Gremlin Server.
@@ -99,11 +104,17 @@
   other-modules:        ServerTest.Common
   if flag(server-test)
     -- Explicitly remove dependency. See https://github.com/haskell/cabal/issues/1725
-    build-depends:        base, aeson, hspec, text, unordered-containers, vector,
-                          greskell, greskell-core,
-                          scientific >=0.3.4.9 && <0.4,
-                          greskell-websocket >=0.1.0.0 && <1.1,
-                          safe-exceptions >=0.1.6 && <0.2
+    build-depends:        base ^>=4.13.0 || ^>=4.14.0 || ^>=4.15.0 || ^>=4.16.0 || ^>=4.17.0 || ^>=4.18.0 || ^>=4.19.0 || ^>=4.20.0,
+                          aeson ^>=2.0.2 || ^>=2.1.0 || ^>=2.2.3,
+                          hspec ^>=2.9.1 || ^>=2.10.6 || ^>=2.11.9,
+                          text ^>=1.2.3 || ^>=2.0.2 || ^>=2.1,
+                          unordered-containers ^>=0.2.15,
+                          vector ^>=0.12.3 || ^>=0.13.0,
+                          greskell,
+                          greskell-core ^>=1.0.0,
+                          scientific,
+                          greskell-websocket,
+                          safe-exceptions
   else
     buildable: False
 
@@ -124,11 +135,17 @@
   other-extensions:     OverloadedStrings
   other-modules:        ServerTest.Common
   if flag(server-behavior-test)
-    build-depends:        base, aeson, hspec, text, unordered-containers, vector,
-                          greskell, greskell-core,
-                          scientific >=0.3.4.9 && <0.4,
-                          greskell-websocket >=0.1.0.0 && <1.1,
-                          safe-exceptions >=0.1.6 && <0.2
+    build-depends:        base ^>=4.13.0 || ^>=4.14.0 || ^>=4.15.0 || ^>=4.16.0 || ^>=4.17.0 || ^>=4.18.0 || ^>=4.19.0 || ^>=4.20.0,
+                          aeson ^>=2.0.2 || ^>=2.1.0 || ^>=2.2.3,
+                          hspec ^>=2.9.1 || ^>=2.10.6 || ^>=2.11.9,
+                          text ^>=1.2.3 || ^>=2.0.2 || ^>=2.1,
+                          unordered-containers ^>=0.2.15,
+                          vector ^>=0.12.3 || ^>=0.13.0,
+                          greskell,
+                          greskell-core ^>=1.0.0,
+                          scientific,
+                          greskell-websocket,
+                          safe-exceptions
   else
     buildable: False
 
