diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,8 +1,12 @@
 * Hackage: <http://hackage.haskell.org/package/linearEqSolver>
 * GitHub:  <http://github.com/LeventErkok/linearEqSolver>
 
-* Latest Hackage released version: 2.0
+* Latest Hackage released version: 2.1
 
+### Version 2.1, 2019-5-13
+  * Update to compile with more recent versions of SBV. Thanks to
+    Colin McKibben for reporting the breakage.
+
 ### Version 2.0, 2017-10-25
 
   * Use defaultSMTConfig exported from SBV
@@ -12,10 +16,8 @@
 
 ### Version 1.3, 2014-08-27
 
-  * Use the Solver type from SBV directly for picking the solver,
-    avoiding bit-rot.
-  * Adjust SBV dependency to >= 3.1, to get proper access to
-    Solver type
+  * Use the Solver type from SBV directly for picking the solver, avoiding bit-rot.
+  * Adjust SBV dependency to >= 3.1, to get proper access to Solver type
 
 ### Version 1.2, 2013-01-02
 
diff --git a/Math/LinearEquationSolver.hs b/Math/LinearEquationSolver.hs
--- a/Math/LinearEquationSolver.hs
+++ b/Math/LinearEquationSolver.hs
@@ -79,7 +79,7 @@
 -- We have:
 --
 -- >>> solveIntegerLinearEqsAll Z3 3 [[2, 3, 4],[6, -3, 9]] [20, -6]
--- [[-8,4,6],[-21,2,14],[-34,0,22]]
+-- [[-47,-2,30],[-34,0,22],[-21,2,14]]
 --
 -- The solutions you get might differ, depending on what the solver returns. (Though they'll be correct!)
 solveIntegerLinearEqsAll :: Solver          -- ^ SMT Solver to use
@@ -125,7 +125,7 @@
 -- In this case, the system has infinitely many solutions. We can compute three of them as follows:
 --
 -- >>> solveRationalLinearEqsAll Z3 3 [[2.4, 3.6]] [12]
--- [[5 % 1,0 % 1],[13 % 2,(-1) % 1],[8 % 1,(-2) % 1]]
+-- [[0 % 1,10 % 3],[3 % 4,17 % 6],[3 % 2,7 % 3]]
 --
 -- The solutions you get might differ, depending on what the solver returns. (Though they'll be correct!)
 solveRationalLinearEqsAll :: Solver             -- ^ SMT Solver to use
@@ -140,7 +140,7 @@
         cfg  = (defaultSolverConfig s) {allSatMaxModelCount = Just maxNo}
 
 -- | Build the constraints as given by the coefficient matrix and the resulting vector
-buildConstraints :: (Num a, SymWord a) => String -> [[a]] -> [a] -> Symbolic SBool
+buildConstraints :: (Ord a, Num a, SymVal a) => String -> [[a]] -> [a] -> Symbolic SBool
 buildConstraints f coeffs res
   | m == 0 || any (/= n) ns || m /= length res
   = error $ f ++ ": received ill-formed input."
diff --git a/linearEqSolver.cabal b/linearEqSolver.cabal
--- a/linearEqSolver.cabal
+++ b/linearEqSolver.cabal
@@ -1,5 +1,5 @@
 Name:          linearEqSolver
-Version:       2.0
+Version:       2.1
 Category:      Math, SMT
 Synopsis:      Use SMT solvers to solve linear systems over integers and rationals
 Description:   Solve linear systems of equations over integers and rationals, using an SMT solver.
@@ -19,7 +19,7 @@
 Bug-reports:   http://github.com/LeventErkok/linearEqSolver/issues
 Maintainer:    Levent Erkok (erkokl@gmail.com)
 Build-Type:    Simple
-Cabal-Version: >= 1.14
+Cabal-Version: 1.14
 Extra-Source-Files: INSTALL, README, COPYRIGHT, CHANGES.md
 
 source-repository head
@@ -29,6 +29,5 @@
 Library
   default-language: Haskell2010
   ghc-options     : -Wall
-  Build-Depends   : base >= 4.9 && < 5
-                  , sbv >= 7.3
+  Build-Depends   : base >= 4.9 && < 5, sbv
   Exposed-modules : Math.LinearEquationSolver
