anchor.diff:  (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))))
  +    (let ((v (make-array (min m n) :initial-element 0)))
         (loop for i below (min m n)
   	 do (setf (aref v i) (aref a i i)))
         v)))
  
positive.code: (defun mapm (fn &rest ms)
    "Map a function across the elements of matrices of the same dimension"
    (destructuring-bind (r c) (array-dimensions (first ms))
      (let ((mout (make-array (list r c))))
        (dotimes (ri r)
  	(dotimes (ci c)
  	  (setf (aref mout ri ci) 
  
negative.code: (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) :initial-element 0)))
  	(dotimes (i m)
  	  (dotimes (j n)
  	    (setf (aref c i j) 
  