diff --git a/Data/Array/Repa/Arbitrary.hs b/Data/Array/Repa/Arbitrary.hs
--- a/Data/Array/Repa/Arbitrary.hs
+++ b/Data/Array/Repa/Arbitrary.hs
@@ -42,9 +42,10 @@
       => Arbitrary (a :. Int) where
  arbitrary 
         = sized (\n -> do 
-                b       <- choose (1, n)
-                let dimLimit :: Int = ceiling (fromIntegral n / fromIntegral b :: Double)
-                a       <- resize dimLimit arbitrary
+                b <- if n == 0
+                         then return 1
+                         else choose (1, n)
+                a <- resize ((n + b - 1) `div` b) arbitrary
                 -- each dimension should be at least 1-wide
                 return $ a :. b)
 
diff --git a/Data/Array/Repa/Specialised/Dim2.hs b/Data/Array/Repa/Specialised/Dim2.hs
--- a/Data/Array/Repa/Specialised/Dim2.hs
+++ b/Data/Array/Repa/Specialised/Dim2.hs
@@ -76,7 +76,7 @@
         :: (Source r1 a, Source r2 a)
         => DIM2                 -- ^ Extent of array.
         -> Int                  -- ^ Width of border.
-        -> Array r1 DIM2 a      -- ^ Array for internal elements.
+        -> Array r1 DIM2 a      -- ^ Array for internal elements.
         -> Array r2 DIM2 a      -- ^ Array for border elements.
         -> Array (P r1 (P r2 (P r2 (P r2 (P r2 X))))) DIM2 a
 
diff --git a/repa.cabal b/repa.cabal
--- a/repa.cabal
+++ b/repa.cabal
@@ -1,5 +1,5 @@
 Name:                repa
-Version:             3.4.1.3
+Version:             3.4.1.4
 License:             BSD3
 License-file:        LICENSE
 Author:              The DPH Team
@@ -21,17 +21,20 @@
 
 Library
   Build-Depends:
-        base                 >= 4.8 && < 4.11
+        base                 >= 4.8 && < 4.13
       , template-haskell
       , ghc-prim
       , vector               >= 0.11 && < 0.13
       , bytestring           == 0.10.*
-      , QuickCheck           >= 2.8 && < 2.11
+      , QuickCheck           >= 2.8 && < 2.12
 
   ghc-options:
-        -Wall -fno-warn-missing-signatures
-        -Odph
+        -Wall
+        -O2
+        -fmax-simplifier-iterations=20
+        -fsimplifier-phases=3
         -funbox-strict-fields
+        -fno-warn-missing-signatures
 
   if impl(ghc >= 8.0)
     ghc-options: -fno-cpr-anal
