diff --git a/lapack.cabal b/lapack.cabal
--- a/lapack.cabal
+++ b/lapack.cabal
@@ -1,6 +1,6 @@
 Cabal-Version:    2.2
 Name:             lapack
-Version:          0.5.1
+Version:          0.5.1.1
 License:          BSD-3-Clause
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -44,6 +44,10 @@
     Support for nice formatting in HyperHaskell.
   .
   See also: @hmatrix@.
+  .
+  For examples see the @Example@ modules
+  and the packages @sum-pyramid@, @wuerfelschlange@, @magico@,
+  @linear-circuit@, @resistor-cube@.
 Tested-With:      GHC==7.4.2, GHC==7.8.4, GHC==8.6.5
 Build-Type:       Simple
 Extra-Source-Files:
@@ -53,7 +57,7 @@
   test-module.list
 
 Source-Repository this
-  Tag:         0.5.1
+  Tag:         0.5.1.1
   Type:        darcs
   Location:    https://hub.darcs.net/thielema/lapack/
 
@@ -76,9 +80,9 @@
     guarded-allocation >=0.0 && <0.1,
     hyper >=0.1 && <0.3,
     blaze-html >=0.7 && <0.10,
-    text >=1.2 && <2.1,
+    text >=1.2 && <2.2,
     boxes >=0.1.5 && <0.2,
-    deepseq >=1.3 && <1.5,
+    deepseq >=1.3 && <1.6,
     lazyio >=0.1 && <0.2,
     transformers >=0.4 && <0.7,
     tfp >=1.0.2 && <1.1,
diff --git a/src/Numeric/LAPACK/Singular.hs b/src/Numeric/LAPACK/Singular.hs
--- a/src/Numeric/LAPACK/Singular.hs
+++ b/src/Numeric/LAPACK/Singular.hs
@@ -38,6 +38,19 @@
 
 type RealVector sh a = Vector sh (RealOf a)
 
+{- |
+The 'RectangularDiagonal' type maintains
+the shape information of the original matrix,
+but is a bit cumbersome to work with.
+You might access its elements using '#!'
+or extract the diagonal as vector by:
+
+> Singular.values m #*| Vector.one (Matrix.height m)
+
+> Vector.one (Matrix.width m) -*# Singular.values m
+
+.
+-}
 values ::
    (Extent.Measure meas, Extent.C vert, Extent.C horiz) =>
    (Shape.C height, Shape.C width, Class.Floating a) =>
diff --git a/test/DocTest/Numeric/LAPACK/Example/DividedDifference.hs b/test/DocTest/Numeric/LAPACK/Example/DividedDifference.hs
--- a/test/DocTest/Numeric/LAPACK/Example/DividedDifference.hs
+++ b/test/DocTest/Numeric/LAPACK/Example/DividedDifference.hs
@@ -38,16 +38,19 @@
 test = do
  DocTest.printPrefix "Numeric.LAPACK.Example.DividedDifference:85: "
 {-# LINE 85 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 85 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
-     (QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (ys0|+|ys1)) (dividedDifferencesMatrix xs ys0 #+# dividedDifferencesMatrix xs ys1))
+      QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (ys0|+|ys1)) (dividedDifferencesMatrix xs ys0 #+# dividedDifferencesMatrix xs ys1)
+  )
  DocTest.printPrefix "Numeric.LAPACK.Example.DividedDifference:86: "
 {-# LINE 86 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 86 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
-     (QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (Vector.mul ys0 ys1)) (dividedDifferencesMatrix xs ys0 <> dividedDifferencesMatrix xs ys1))
+      QC.forAll genDD $ \(xs, (ys0,ys1)) -> approxArray (dividedDifferencesMatrix xs (Vector.mul ys0 ys1)) (dividedDifferencesMatrix xs ys0 <> dividedDifferencesMatrix xs ys1)
+  )
  DocTest.printPrefix "Numeric.LAPACK.Example.DividedDifference:96: "
 {-# LINE 96 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 96 "src/Numeric/LAPACK/Example/DividedDifference.hs" #-}
-     (QC.forAll (QC.choose (0,10)) $ \n -> let sh = shapeInt n in QC.forAll (Util.genDistinct [-10..10] [-10..10] sh) $ \xs -> approxArray (DD.parameterDifferencesMatrix xs) (DD.upperFromPyramid sh (Vector.zero sh : DD.parameterDifferences xs)))
+      QC.forAll (QC.choose (0,10)) $ \n -> let sh = shapeInt n in QC.forAll (Util.genDistinct [-10..10] [-10..10] sh) $ \xs -> approxArray (DD.parameterDifferencesMatrix xs) (DD.upperFromPyramid sh (Vector.zero sh : DD.parameterDifferences xs))
+  )
diff --git a/test/DocTest/Numeric/LAPACK/Example/EconomicAllocation.hs b/test/DocTest/Numeric/LAPACK/Example/EconomicAllocation.hs
--- a/test/DocTest/Numeric/LAPACK/Example/EconomicAllocation.hs
+++ b/test/DocTest/Numeric/LAPACK/Example/EconomicAllocation.hs
@@ -18,6 +18,7 @@
 test = do
  DocTest.printPrefix "Numeric.LAPACK.Example.EconomicAllocation:92: "
 {-# LINE 92 "src/Numeric/LAPACK/Example/EconomicAllocation.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 92 "src/Numeric/LAPACK/Example/EconomicAllocation.hs" #-}
-     (let result = iterated expenses0 balances0 in approxVector result $ compensated expenses0 balances0 +++ Vector.zero (Array.shape $ Vector.takeRight result))
+      let result = iterated expenses0 balances0 in approxVector result $ compensated expenses0 balances0 +++ Vector.zero (Array.shape $ Vector.takeRight result)
+  )
diff --git a/test/DocTest/Numeric/LAPACK/Permutation/Private.hs b/test/DocTest/Numeric/LAPACK/Permutation/Private.hs
--- a/test/DocTest/Numeric/LAPACK/Permutation/Private.hs
+++ b/test/DocTest/Numeric/LAPACK/Permutation/Private.hs
@@ -27,16 +27,19 @@
 test = do
  DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:110: "
 {-# LINE 110 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 110 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
-     (QC.forAll QC.arbitraryBoundedEnum $ \inv -> QC.forAll (QC.arbitrary >>= genPivots) $ \xs -> xs == Perm.toPivots inv (Perm.fromPivots inv xs))
+      QC.forAll QC.arbitraryBoundedEnum $ \inv -> QC.forAll (QC.arbitrary >>= genPivots) $ \xs -> xs == Perm.toPivots inv (Perm.fromPivots inv xs)
+  )
  DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:193: "
 {-# LINE 193 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 193 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
-     (QC.forAll genPerm2 $ \(p0,p1) -> determinant (multiply p0 p1) == determinant p0 <> determinant p1)
+      QC.forAll genPerm2 $ \(p0,p1) -> determinant (multiply p0 p1) == determinant p0 <> determinant p1
+  )
  DocTest.printPrefix "Numeric.LAPACK.Permutation.Private:222: "
 {-# LINE 222 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
- DocTest.property
+ DocTest.property(
 {-# LINE 222 "src/Numeric/LAPACK/Permutation/Private.hs" #-}
-     (QC.forAll genPerm2 $ \(p0,p1) -> transpose (multiply p0 p1) == multiply (transpose p1) (transpose p0))
+      QC.forAll genPerm2 $ \(p0,p1) -> transpose (multiply p0 p1) == multiply (transpose p1) (transpose p0)
+  )
