diff --git a/lapack.cabal b/lapack.cabal
--- a/lapack.cabal
+++ b/lapack.cabal
@@ -1,5 +1,5 @@
 Name:             lapack
-Version:          0.2.2
+Version:          0.2.3
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -45,7 +45,7 @@
   default:     False
 
 Source-Repository this
-  Tag:         0.2.2
+  Tag:         0.2.3
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/lapack/
 
diff --git a/src/Numeric/LAPACK/Matrix.hs b/src/Numeric/LAPACK/Matrix.hs
--- a/src/Numeric/LAPACK/Matrix.hs
+++ b/src/Numeric/LAPACK/Matrix.hs
@@ -255,33 +255,31 @@
 
 toRows ::
    (Extent.C vert, Extent.C horiz,
-    Shape.Indexed height, Shape.C width, Class.Floating a) =>
+    Shape.C height, Shape.C width, Class.Floating a) =>
    Full vert horiz height width a -> [Vector width a]
-toRows a = map (takeRow a) $ Shape.indices $ Matrix.height a
+toRows a =
+   let ad = Basic.mapHeight Shape.Deferred $ fromFull a
+   in map (takeRow ad) $ Shape.indices $ Matrix.height ad
 
 toColumns ::
    (Extent.C vert, Extent.C horiz,
-    Shape.C height, Shape.Indexed width, Class.Floating a) =>
+    Shape.C height, Shape.C width, Class.Floating a) =>
    Full vert horiz height width a -> [Vector height a]
-toColumns a = map (takeColumn a) $ Shape.indices $ Matrix.width a
+toColumns a =
+   let ad = Basic.mapWidth Shape.Deferred $ fromFull a
+   in map (takeColumn ad) $ Shape.indices $ Matrix.width ad
 
 toRowArray ::
    (Extent.C vert, Extent.C horiz,
     Shape.C height, Shape.C width, Class.Floating a) =>
    Full vert horiz height width a -> BoxedArray.Array height (Vector width a)
-toRowArray a =
-   let ad = Basic.mapHeight Shape.Deferred $ fromFull a
-   in BoxedArray.fromList (Matrix.height a) $
-      map (takeRow ad) $ Shape.indices (Matrix.height ad)
+toRowArray a = BoxedArray.fromList (Matrix.height a) (toRows a)
 
 toColumnArray ::
    (Extent.C vert, Extent.C horiz,
     Shape.C height, Shape.C width, Class.Floating a) =>
    Full vert horiz height width a -> BoxedArray.Array width (Vector height a)
-toColumnArray a =
-   let ad = Basic.mapWidth Shape.Deferred $ fromFull a
-   in BoxedArray.fromList (Matrix.width a) $
-      map (takeColumn ad) $ Shape.indices (Matrix.width ad)
+toColumnArray a = BoxedArray.fromList (Matrix.width a) (toColumns a)
 
 
 takeRow ::
