diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.0.1.9
+
+- Added support for GHC `9.14`.
+- Revised upper version bounds of dependencies.
+
 # 0.0.1.8
 
 - Revised upper version bounds of dependencies.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -186,7 +186,7 @@
       same "printed page" as the copyright notice for easier
       identification within third-party archives.
 
-   Copyright © 2022–2025 Jonathan Knowles
+   Copyright © 2022–2026 Jonathan Knowles
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,4 +1,10 @@
 # `quickcheck-quid`
-<a href="https://jonathanknowles.github.io/quickcheck-quid/"><img src="https://img.shields.io/badge/API-Documentation-227755" /></a>
+
+[![Latest Release](
+  https://img.shields.io/hackage/v/quickcheck-quid?label=Latest%20Release&color=227755
+)](https://hackage.haskell.org/package/quickcheck-quid)
+[![Development Branch](
+  https://img.shields.io/badge/Development%20Branch-API%20Documentation-225577
+)](https://jonathanknowles.github.io/quickcheck-quid/)
 
 Quasi-unique identifiers for QuickCheck.
diff --git a/quickcheck-quid.cabal b/quickcheck-quid.cabal
--- a/quickcheck-quid.cabal
+++ b/quickcheck-quid.cabal
@@ -1,12 +1,12 @@
 cabal-version:  3.0
 name:           quickcheck-quid
-version:        0.0.1.8
+version:        0.0.1.9
 bug-reports:    https://github.com/jonathanknowles/quickcheck-quid/issues
 license:        Apache-2.0
 license-file:   LICENSE
 author:         Jonathan Knowles
 maintainer:     mail@jonathanknowles.net
-copyright:      2022–2025 Jonathan Knowles
+copyright:      2022–2026 Jonathan Knowles
 category:       Testing
 synopsis:       Quasi-unique identifiers for QuickCheck
 description:
@@ -25,9 +25,9 @@
     location: https://github.com/jonathanknowles/quickcheck-quid
 
 common dependency-base
-    build-depends:base                          >= 4.14.3.0   && < 4.22
+    build-depends:base                          >= 4.14.3.0   && < 4.23
 common dependency-containers
-    build-depends:containers                    >= 0.5.7.0    && < 0.8
+    build-depends:containers                    >= 0.5.7.0    && < 0.9
 common dependency-deepseq
     build-depends:deepseq                       >= 1.4.4.0    && < 1.6
 common dependency-extra
@@ -38,12 +38,14 @@
     build-depends:hashable                      >= 1.3.0.0    && < 1.6
 common dependency-hspec
     build-depends:hspec                         >= 2.7.1      && < 2.12
+common dependency-hspec-quickcheck-classes
+    build-depends:hspec-quickcheck-classes      >= 0.0.0.0    && < 0.1
 common dependency-pretty-simple
     build-depends:pretty-simple                 >= 1.0.0.0    && < 4.2
 common dependency-primes
     build-depends:primes                        >= 0.2.0.0    && < 0.3
 common dependency-QuickCheck
-    build-depends:QuickCheck                    >= 2.14       && < 2.17
+    build-depends:QuickCheck                    >= 2.14       && < 2.19
 common dependency-quickcheck-classes
     build-depends:quickcheck-classes            >= 0.6.2.0    && < 0.7
 common dependency-text
@@ -106,6 +108,7 @@
       , dependency-containers
       , dependency-fmt
       , dependency-hspec
+      , dependency-hspec-quickcheck-classes
       , dependency-pretty-simple
       , dependency-primes
       , dependency-QuickCheck
@@ -116,7 +119,6 @@
     hs-source-dirs:
         src/test
     other-modules:
-        Test.QuickCheck.Classes.Hspec
         Test.QuickCheck.QuidSpec
         Test.QuickCheck.Quid.Combinators.PrefixSpec
         Test.QuickCheck.Quid.Representations.DecimalSpec
diff --git a/src/test/Test/QuickCheck/Classes/Hspec.hs b/src/test/Test/QuickCheck/Classes/Hspec.hs
deleted file mode 100644
--- a/src/test/Test/QuickCheck/Classes/Hspec.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-# LANGUAGE PolyKinds #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeApplications #-}
-
--- Provides testing functions to check that type class instances obey laws.
---
-module Test.QuickCheck.Classes.Hspec
-    ( testLaws
-    , testLawsMany
-    ) where
-
-import Prelude
-
-import Control.Monad
-    ( forM_ )
-import Data.Proxy
-    ( Proxy (..) )
-import Data.Typeable
-    ( Typeable, typeRep )
-import Test.Hspec
-    ( Spec, describe, it, parallel )
-import Test.QuickCheck.Classes
-    ( Laws (..) )
-
--- | Constructs a test to check that the given type class instance obeys the
---   given set of laws.
---
--- Example usage:
---
--- >>> testLaws @Natural ordLaws
--- >>> testLaws @(Map Int) functorLaws
---
-testLaws
-    :: forall a. Typeable a
-    => (Proxy a -> Laws)
-    -> Spec
-testLaws getLaws =
-    parallel $ describe description $
-        forM_ (lawsProperties laws) $ uncurry it
-  where
-    description = mconcat
-        [ "Testing "
-        , lawsTypeclass laws
-        , " laws for type "
-        , show (typeRep $ Proxy @a)
-        ]
-    laws = getLaws $ Proxy @a
-
--- | Calls `testLaws` with multiple sets of laws.
---
--- Example usage:
---
--- >>> testLawsMany @Natural [eqLaws, ordLaws]
--- >>> testLawsMany @(Map Int) [foldableLaws, functorLaws]
---
-testLawsMany
-    :: forall a. Typeable a
-    => [Proxy a -> Laws]
-    -> Spec
-testLawsMany getLawsMany =
-    testLaws @a `mapM_` getLawsMany
diff --git a/src/test/Test/QuickCheck/Quid/Combinators/PrefixSpec.hs b/src/test/Test/QuickCheck/Quid/Combinators/PrefixSpec.hs
--- a/src/test/Test/QuickCheck/Quid/Combinators/PrefixSpec.hs
+++ b/src/test/Test/QuickCheck/Quid/Combinators/PrefixSpec.hs
@@ -14,8 +14,8 @@
     ( Spec, describe, parallel )
 import Test.QuickCheck
     ( Arbitrary (..), shrinkMapBy )
-import Test.QuickCheck.Classes.Hspec
-    ( testLawsMany )
+import Test.Hspec.QuickCheck.Classes
+    ( testLaws )
 
 import qualified Test.QuickCheck.Classes as Laws
 
@@ -23,19 +23,19 @@
 spec = do
 
     parallel $ describe "Lawfulness of type class instances" $ do
-        testLawsMany @(Prefix "A" Int)
+        testLaws @(Prefix "A" Int)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
-        testLawsMany @(Prefix ":" Int)
+        testLaws @(Prefix ":" Int)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
-        testLawsMany @(Prefix "1" Int)
+        testLaws @(Prefix "1" Int)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
-        testLawsMany @(Prefix "test-prefix:" Int)
+        testLaws @(Prefix "test-prefix:" Int)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
diff --git a/src/test/Test/QuickCheck/Quid/Representations/DecimalSpec.hs b/src/test/Test/QuickCheck/Quid/Representations/DecimalSpec.hs
--- a/src/test/Test/QuickCheck/Quid/Representations/DecimalSpec.hs
+++ b/src/test/Test/QuickCheck/Quid/Representations/DecimalSpec.hs
@@ -22,8 +22,8 @@
     ( UnitTestData (..), unitTests )
 import Test.QuickCheck
     ( Arbitrary (..) )
-import Test.QuickCheck.Classes.Hspec
-    ( testLawsMany )
+import Test.Hspec.QuickCheck.Classes
+    ( testLaws )
 
 import Prelude hiding
     ( (^) )
@@ -35,7 +35,7 @@
 spec = do
 
     parallel $ describe "Lawfulness of type class instances" $ do
-        testLawsMany @(Decimal Quid)
+        testLaws @(Decimal Quid)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
diff --git a/src/test/Test/QuickCheck/Quid/Representations/HexadecimalSpec.hs b/src/test/Test/QuickCheck/Quid/Representations/HexadecimalSpec.hs
--- a/src/test/Test/QuickCheck/Quid/Representations/HexadecimalSpec.hs
+++ b/src/test/Test/QuickCheck/Quid/Representations/HexadecimalSpec.hs
@@ -22,8 +22,8 @@
     ( UnitTestData (..), unitTests )
 import Test.QuickCheck
     ( Arbitrary (..) )
-import Test.QuickCheck.Classes.Hspec
-    ( testLawsMany )
+import Test.Hspec.QuickCheck.Classes
+    ( testLaws )
 
 import Prelude hiding
     ( (^) )
@@ -35,7 +35,7 @@
 spec = do
 
     parallel $ describe "Lawfulness of type class instances" $ do
-        testLawsMany @(Hexadecimal Quid)
+        testLaws @(Hexadecimal Quid)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
diff --git a/src/test/Test/QuickCheck/Quid/Representations/LatinSpec.hs b/src/test/Test/QuickCheck/Quid/Representations/LatinSpec.hs
--- a/src/test/Test/QuickCheck/Quid/Representations/LatinSpec.hs
+++ b/src/test/Test/QuickCheck/Quid/Representations/LatinSpec.hs
@@ -30,8 +30,8 @@
     ( UnitTestData (..), unitTests )
 import Test.QuickCheck
     ( Arbitrary (..), Property, property, shrinkMapBy, (===) )
-import Test.QuickCheck.Classes.Hspec
-    ( testLawsMany )
+import Test.Hspec.QuickCheck.Classes
+    ( testLaws )
 
 import Prelude hiding
     ( (^) )
@@ -43,7 +43,7 @@
 spec = do
 
     parallel $ describe "Lawfulness of type class instances" $ do
-        testLawsMany @(Latin Quid)
+        testLaws @(Latin Quid)
             [ Laws.showLaws
             , Laws.showReadLaws
             ]
diff --git a/src/test/Test/QuickCheck/QuidSpec.hs b/src/test/Test/QuickCheck/QuidSpec.hs
--- a/src/test/Test/QuickCheck/QuidSpec.hs
+++ b/src/test/Test/QuickCheck/QuidSpec.hs
@@ -68,8 +68,8 @@
     , (.&&.)
     , (===)
     )
-import Test.QuickCheck.Classes.Hspec
-    ( testLawsMany )
+import Test.Hspec.QuickCheck.Classes
+    ( testLaws )
 import Text.Pretty.Simple
     ( pShow )
 
@@ -82,11 +82,11 @@
 spec = do
 
     parallel $ describe "Lawfulness of type class instances" $ do
-        testLawsMany @TestQuid
+        testLaws @TestQuid
             [ Laws.eqLaws
             , Laws.ordLaws
             ]
-        testLawsMany @TestQuid
+        testLaws @TestQuid
             [ Laws.eqLaws
             , Laws.ordLaws
             , Laws.showLaws
