anchor.diff:      ((:type vec3)
        (:return-type mat3)
        (:omit-destructive-version t)
  -     (:documentation "Construct a rotation matrix from an axis and an angle. 
  -Assume the axis port is already normalized."))
  +     (:documentation "Construct a rotation matrix from an axis and an angle.
  +Assume the axis vector is already normalized."))
  +  (declare (type (single-float 0.0 6.3) angle))
     (let* ((cos (cos angle))
            (sin (sin angle))
            (omc (invert cos))
  
positive.code:         (dst (vec-ensure-store v store)))
      (loop for i from 0 below rows do
           (setf (row-major-aref dst i)
                 (loop for j from 0 below rows 
                    sum (* (row-major-aref m (+ (* i rows) j))
                           (row-major-aref v j))))
           finally (return dst))))
  
negative.code:     ((m00 1.0) m01
       m10 (m11 1.0)))
  
  (defvector mat32 ()
      ((m00 1.0) m01 m02
       m10 (m11 1.0) m12))
  
  (defvector mat3 ()
    ((m00 1.0) m01 m02
     m10 (m11 1.0) m12
     m20 m21 (m22 1.0)))
  
  (defvector mat43 ()
      ((m00 1.0) m01 m02 m03
       m10 (m11 1.0) m12 m13
       m20 m21 (m22 1.0) m23))
  
  (defvector mat4 ()
    ((m00 1.0) m01 m02 m03
     m10 (m11 1.0) m12 m13
     m20 m21 (m22 1.0) m23
     m30 m31 m32 (m33 1.0)))
  
  
  
  ;; (defun mat3<-rows (a b c)
  