diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,7 +1,11 @@
 * Hackage: <http://hackage.haskell.org/package/crackNum>
 * GitHub:  <http://github.com/LeventErkok/crackNum/>
 
-* Latest Hackage released version: 3.14, 2024-09-23
+* Latest Hackage released version: 3.15, 2024-11-09
+
+### Version 3.15, 2024-11-09
+
+  * Bump up SBV dependence to >= 11.0
 
 ### Version 3.14, 2024-09-23
 
diff --git a/crackNum.cabal b/crackNum.cabal
--- a/crackNum.cabal
+++ b/crackNum.cabal
@@ -1,6 +1,6 @@
 Cabal-version      : 2.2
 Name               : crackNum
-Version            : 3.14
+Version            : 3.15
 Synopsis           : Crack various integer and floating-point data formats
 Description        : Crack IEEE-754 float formats and arbitrary sized words and integers, showing the layout.
                      .
@@ -15,7 +15,7 @@
 Build-type         : Simple
 Extra-Source-Files : README.md, COPYRIGHT, CHANGES.md
 
-Tested-With       : GHC==9.6.1
+Tested-With       : GHC==9.10.1
 
 source-repository head
     type:       git
@@ -26,7 +26,7 @@
    default-language: Haskell2010
    hs-source-dirs  : src
    ghc-options     : -Wall -Wunused-packages
-   build-depends   : base >= 4.11 && < 5, libBF, ghc, sbv >= 10.9
+   build-depends   : base >= 4.11 && < 5, libBF, ghc, sbv >= 11.0
                    , tasty, tasty-golden, filepath, directory, process, deepseq
    other-modules   : Paths_crackNum, CrackNum.TestSuite
    autogen-modules : Paths_crackNum
diff --git a/src/CrackNum/Main.hs b/src/CrackNum/Main.hs
--- a/src/CrackNum/Main.hs
+++ b/src/CrackNum/Main.hs
@@ -557,9 +557,9 @@
                      _                    -> die ["Expected an integer value to decode, received: " ++ show inp]
           where p :: Integer -> Predicate
                 p iv = do let k = KBounded sgn n
-                              v = SBV $ SVal k $ Left $ mkConstCV k iv
+                              v = SVal k $ Left $ mkConstCV k iv
                           x <- (if sgn then sIntN else sWordN) n "ENCODED"
-                          pure $ SBV x .== v
+                          pure $ SBV (x `svEqual` v)
 
         convert :: Int -> Int -> (BigFloat, Maybe String)
         convert i j = case s of
@@ -622,7 +622,7 @@
                                                          xsv <- sbvToSV st sr
                                                          newExpr st k (SBVApp (IEEEFP (FP_Cast KReal k msv)) [xsv])
                                            pure $   sr .== val
-                                                .&& SBV sx .== SBV (SVal k (Right (cache r)))
+                                                .&& SBV (sx `svEqual` SVal k (Right (cache r)))
 
         ef E5M2 _ = ef (FP 5 3) True -- 3 is intentional; the format ignores the sign storage, but SBV doesn't, following SMTLib
 
