diff --git a/Data/Array/Base.hs b/Data/Array/Base.hs
index 8a06afd3b1abd1d98869d204f225fd3ae0cce43a..2516bef99abfb3a86d8f66c5b86067c38d0d88f6 100644
--- a/Data/Array/Base.hs
+++ b/Data/Array/Base.hs
@@ -914,7 +914,8 @@ newListArray (l,u) es = do
         f x k i
             | i == n    = return ()
             | otherwise = unsafeWrite marr i x >> k (i+1)
-    foldr f (const (return ())) es 0
+    foldr f (\ !_i -> return ()) es 0
+    -- The bang above is important for GHC for unbox the Int.
     return marr
 
 {-# INLINE newGenArray #-}