diagonal :: AdditiveMonoid a => Vector (Unit a) -> LeftTransformation a
diagonal ds =
  let nrs = V.length ds
  in  LeftTransformation nrs $ (`V.imap` ds) $ \ix d ->
        LeftTransformationColumn ix d $
          V.replicate (nrs-ix-1) zero
diagonal :: AdditiveMonoid a => Vector (Unit a) -> LeftTransformation a
diagonal ds =
  let nrs = V.length ds
  in  LeftTransformation nrs $ (`V.imap` ds) $ \ix d ->
        LeftTransformationColumn ix d $
          V.replicate (nrs-ix-1) zero
diagonal ds =
  let nrs = V.length ds
  in  LeftTransformation nrs $ (`V.imap` ds) $ \ix d ->
        LeftTransformationColumn ix d $
          V.replicate (nrs-ix-1) zero