diff --git a/Data/Array/Internal/RankedG.hs b/Data/Array/Internal/RankedG.hs
--- a/Data/Array/Internal/RankedG.hs
+++ b/Data/Array/Internal/RankedG.hs
@@ -63,7 +63,7 @@
 import Data.Array.Internal
 
 -- | Arrays stored in a /v/ with values of type /a/.
-data Array (n :: Nat) v a = A ShapeL (T v a)
+data Array (n :: Nat) v a = A !ShapeL !(T v a)
   deriving (Generic, Data)
 
 instance (Vector v, Show a, VecElem v a) => Show (Array n v a) where
@@ -91,6 +91,7 @@
   rnf (A sh v) = rnf sh `seq` rnf v
 
 -- | The number of elements in the array.
+-- O(1) time.
 {-# INLINE size #-}
 size :: Array n v a -> Int
 size = product . shapeL
@@ -118,7 +119,7 @@
 index (A [] _) _ = error "index: scalar"
 
 -- | Convert to a list with the elements in the linearization order.
--- O(1) time.
+-- O(n) time.
 {-# INLINE toList #-}
 toList :: (Vector v, VecElem v a) => Array n v a -> [a]
 toList (A sh t) = toListT sh t
diff --git a/Data/Array/Internal/ShapedG.hs b/Data/Array/Internal/ShapedG.hs
--- a/Data/Array/Internal/ShapedG.hs
+++ b/Data/Array/Internal/ShapedG.hs
@@ -123,7 +123,7 @@
   where s = valueOf @s
 
 -- | Convert to a list with the elements in the linearization order.
--- O(1) time.
+-- O(n) time.
 {-# INLINE toList #-}
 toList :: (Vector v, VecElem v a, Shape sh) => Array sh v a -> [a]
 toList a@(A t) = toListT (shapeL a) t
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -92,7 +92,7 @@
 
 Arrays can be pretty printed.  They are shown in the APL way:
 The innermost dimension on a line, the next dimension vertically,
-the next dimension vertically with an empty line in betwee, and so on.
+the next dimension vertically with an empty line in between, and so on.
 
 ```
 > pp m
diff --git a/orthotope.cabal b/orthotope.cabal
--- a/orthotope.cabal
+++ b/orthotope.cabal
@@ -1,5 +1,5 @@
 name:                orthotope
-version:             0.1.4.1
+version:             0.1.5.0
 synopsis:            Multidimensional arrays inspired by APL
 license:             Apache
 license-file:        LICENSE
