anchor.diff:  (defmeth2 * ((a array) (b array))
     (destructuring-bind (m p) (array-dimensions a)
       (destructuring-bind (p n) (array-dimensions b)
  -      (let ((c (make-array (list m n))))
  +      (let ((c (make-array (list m n) :initial-element 0)))
   	(dotimes (i m)
   	  (dotimes (j n)
   	    (setf (aref c i j) 
  
positive.code: (defun diag (a)
    "Pull out the diagonal of an array into a 1D vector"
    (destructuring-bind (m n) (array-dimensions a)
      (let ((v (make-array (min m n))))
        (loop for i below (min m n)
  	 do (setf (aref v i) (aref a i i)))
        v)))
  
negative.code: (defun transpose (a)
    "Transpose a matrix"
    (destructuring-bind (m n) (array-dimensions a)
      (let ((b (make-array (list n m) :initial-element 0)))
        (dotimes (i m)
  	(dotimes (j n)
  	  (setf (aref b j i) (aref a i j))))
  