diff --git a/carray.cabal b/carray.cabal
--- a/carray.cabal
+++ b/carray.cabal
@@ -1,5 +1,5 @@
 name:                carray
-version:             0.1.6.5
+version:             0.1.6.6
 synopsis:            A C-compatible array library.
 description:
   A C-compatible array library.
@@ -21,7 +21,7 @@
   Makefile
 
 source-repository this
-  tag:         0.1.6.5
+  tag:         0.1.6.6
   type:        darcs
   location:    http://hub.darcs.net/thielema/carray/
 
@@ -57,7 +57,7 @@
     build-depends: base <3
 
   if flag(base4)
-    build-depends: base >=4 && <5, syb >=0.1 && <0.7
+    build-depends: base >=4 && <5, syb >=0.1 && <0.8
   else
     build-depends: base <4
 
diff --git a/src/Data/Array/CArray/Base.hs b/src/Data/Array/CArray/Base.hs
--- a/src/Data/Array/CArray/Base.hs
+++ b/src/Data/Array/CArray/Base.hs
@@ -171,7 +171,9 @@
                     !(fp0, off, len) = S.toForeignPtr bs
                     fp = mapPtr (flip plusPtr off) fp0
                     p = unsafeForeignPtrToPtr fp
-                    safe = sizeOf dummy * n <= len && p == p `alignPtr` alignment dummy
+                    safe =
+                        sizeOf dummy * n <= len &&
+                        p == p `alignPtr` alignment dummy
           mapPtr :: (Ptr a -> Ptr b) -> ForeignPtr a -> ForeignPtr b
           mapPtr f (ForeignPtr addr contents) =
               case f $ Ptr addr of
diff --git a/tests/meteor-contest-c.hs b/tests/meteor-contest-c.hs
--- a/tests/meteor-contest-c.hs
+++ b/tests/meteor-contest-c.hs
@@ -1,5 +1,5 @@
 {-# OPTIONS -O2 -optc-O3 #-}
-{-# LANGUAGE BangPatterns#-}
+{-# LANGUAGE BangPatterns #-}
 
 -- The Computer Language Benchmarks Game
 --   http://shootout.alioth.debian.org/
diff --git a/tests/meteor-contest-u.hs b/tests/meteor-contest-u.hs
--- a/tests/meteor-contest-u.hs
+++ b/tests/meteor-contest-u.hs
@@ -1,5 +1,5 @@
 {-# OPTIONS -O2 -optc-O3 #-}
-{-# LANGUAGE BangPatterns#-}
+{-# LANGUAGE BangPatterns #-}
 
 -- The Computer Language Benchmarks Game
 --   http://shootout.alioth.debian.org/
diff --git a/tests/tests.hs b/tests/tests.hs
--- a/tests/tests.hs
+++ b/tests/tests.hs
@@ -4,13 +4,15 @@
 import qualified Test.QuickCheck as QC
 import Test.QuickCheck (Property, (==>))
 import Control.Arrow ((&&&), (***))
+import Control.Monad (liftM2)
 import Text.Show.Functions ()
 import Data.Array.CArray
           (CArray, flatten, ixmapWithInd, rank, reshape, shape, size, sliceWith)
 import Data.Ix.Shapable (shapeToStride)
 import Data.Array.Unboxed
           (IArray, Ix, UArray,
-           accum, amap, bounds, elems, inRange, ixmap, listArray, rangeSize)
+           accum, amap, bounds, elems, ixmap, listArray, rangeSize)
+import Data.Word (Word32)
 import Foreign.Storable (Storable)
 import Text.Printf (printf)
 import System.Environment (getArgs)
@@ -101,10 +103,11 @@
 prop_ixmapWithInd_amap :: (Int -> Double) -> CArray (Int,Int) Int -> Property
 prop_ixmapWithInd_amap f a = size a > 0 ==> ixmapWithInd (bounds a) id (\_ e _ -> f e) a == amap f a
 
-type Acc = Int
-prop_accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> Property
-prop_accum f a ies = all (inRange (bounds a) . fst) ies
-    ==> (      (accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> CArray Int Int)
+type Acc = Word32
+prop_accum :: (Int -> Acc -> Int) -> CArray Int Int -> Property
+prop_accum f a =
+    QC.forAll (QC.listOf $ liftM2 (,) (QC.choose (bounds a)) QC.arbitrary) $ \ies ->
+        (      (accum :: (Int -> Acc -> Int) -> CArray Int Int -> [(Int, Acc)] -> CArray Int Int)
          =|||= (accum :: (Int -> Acc -> Int) -> UArray Int Int -> [(Int, Acc)] -> UArray Int Int)) f a ies
 
 type Transform = CArray Int Int -> CArray Int Int
