diff --git a/blaze-textual.cabal b/blaze-textual.cabal
--- a/blaze-textual.cabal
+++ b/blaze-textual.cabal
@@ -1,5 +1,5 @@
 name:            blaze-textual
-version:         0.2.0.6
+version:         0.2.0.7
 license:         BSD3
 license-file:    LICENSE
 category:        Text
@@ -67,7 +67,7 @@
 
   if impl(ghc >= 6.11)
     cpp-options: -DINTEGER_GMP
-    build-depends: integer-gmp >= 0.2 && < 0.5
+    build-depends: integer-gmp >= 0.2
 
   if impl(ghc >= 6.9) && impl(ghc < 6.11)
     cpp-options: -DINTEGER_GMP
diff --git a/tests/QC.hs b/tests/QC.hs
--- a/tests/QC.hs
+++ b/tests/QC.hs
@@ -9,13 +9,13 @@
 import qualified Data.ByteString.Char8 as B
 
 -- Integral values should be rendered exactly as Haskell does.
-t_integral :: Integral a => a -> a -> Bool
+t_integral :: (Integral a, Show a) => a -> a -> Bool
 t_integral _ i = toByteString (integral i) == B.pack (show i)
 
 -- This package doesn't render floating point numbers exactly as
 -- Haskell does, but the numbers it renders should read back exactly.
 -- So that's the property we check.
-t_real :: (RealFloat a, Read a) => (a -> Builder) -> a -> a -> Bool
+t_real :: (RealFloat a, Show a, Read a) => (a -> Builder) -> a -> a -> Bool
 t_real f i j =
     case read (B.unpack . toByteString . f $ ij) of
       r | isNaN r      -> isNaN ij
