anchor.diff:  
   ;;----------------------------------------------------------------
   
  -(declaim (inline lerp)
  -         (ftype (function (vec3 vec3 single-float) vec3)
  -                lerp))
  -(defun lerp (vector-a vector-b ammount)
  -  (declare (vec3 vector-a vector-b))
  +(defn lerp ((vector-a vec3) (vector-b vec3) (ammount single-float)) vec3
  +  (declare (optimize (speed 3) (safety 1) (debug 1)))
     (%+ vector-a (*s (%- vector-b vector-a) ammount)))
   
   
   ;; read this for details: (+ (* (- 1.0 v) a) (* v b))
   ;; https://gitlab.common-lisp.net/alexandria/alexandria/commit/926a066611b7b11cb71e26c827a271e500888c30
   ;; thanks to axion for the heads-up
  -(declaim (inline stable-lerp)
  -         (ftype (function (vec3 vec3 single-float) vec3)
  -                stable-lerp))
  -(defun stable-lerp (vector-a vector-b ammount)
  -  (declare (vec3 vector-a vector-b))
  +(defn stable-lerp ((vector-a vec3) (vector-b vec3) (ammount single-float)) vec3
  +  (declare (optimize (speed 3) (safety 1) (debug 1)))
     (%+ (*s vector-a (cl:- 1s0 ammount))
         (*s vector-b ammount)))
   
  
positive.code: 
  ;;----------------------------------------------------------------
  
  (declaim (inline bezier)
           (ftype (function (vec3 vec3 vec3 vec3 single-float) vec3)
                  bezier))
  (defun bezier (a1 a2 b1 b2 ammount)
    (declare (vec3 a1 a2 b1 b2)
             (single-float ammount))
    (lerp (lerp a1 a2 ammount)
          (lerp b1 b2 ammount)
          ammount))
  
negative.code:     (2 `(*v ,@vec3s))
      (otherwise whole)))
  
  (defn *v ((vector-a vec3) (vector-b vec3)) vec3
    "Multiplies components"
    (declare (optimize (speed 3) (safety 1) (debug 1)))
    (make (cl:* (aref vector-a 0) (aref vector-b 0))
          (cl:* (aref vector-a 1) (aref vector-b 1))
          (cl:* (aref vector-a 2) (aref vector-b 2))))
  
  ;;---------------------------------------------------------------
  
  (defn /s ((vector-a vec3) (a single-float)) vec3
    "divide vector by scalar and return result as new vector"
    (declare (optimize (speed 3) (safety 1) (debug 1)))
    (let ((b (cl:/ 1 a)))
      (make (cl:* (aref vector-a 0) b)
            (cl:* (aref vector-a 1) b)
  