anchor.diff:  
   ;;----------------------------------------------------------------
   
  -(declaim (inline x y z w)
  -         (ftype (function ((simple-array single-float (*))) single-float)
  -                x y z w))
  +(declaim (inline x y z w))
   (defun x (vec)
     "Returns the x component of the vector"
     (aref vec 0))
  
positive.code:   "Sets the w component of the vector"
    (setf (aref vec 3) (float value)))
  
  ;;----------------------------------------------------------------
  
negative.code: (defun w (vec)
    "Returns the w component of the vector"
    (aref vec 3))
  
  (define-compiler-macro x (vec)
    `(aref ,vec 0))
  
  (define-compiler-macro y (vec)
    `(aref ,vec 1))
  
  (define-compiler-macro z (vec)
    `(aref ,vec 2))
  
  (define-compiler-macro w (vec)
    `(aref ,vec 3))
  
  (defun (setf x) (value vec)
    "Sets the x component of the vector"
  