anchor.diff:         Note that this will (possibly) update the spec but will not trigger a
          recompile in the pipelines."
     (let ((spec (%make-gpu-func-spec name in-args uniforms context body instancing
  -                                   nil nil nil doc-string declarations
  +                                   nil nil nil doc-string nil
                                      nil));;[0]
           (valid-glsl-versions (get-versions-from-context context)))
       ;; this gets the functions used in the body of this function
  
positive.code:                      (compiled
                        (first
                         (varjo:test-translate-raising
                          (varjo:make-stage nil in-args uniforms context body t)
                          :stages '(:vertex :fragment)))))
                  (setf actual-uniforms ;;[2]
                        (mapcar #'varjo:to-arg-form
                                (remove-if #'varjo:ephemeral-p
  
negative.code:   ;; at the tail
    ;; -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
    ;; seperate any doc-string or declarations from the body
    (let ((doc-string (when (stringp (first body)) (pop body))))
      ;; split the argument list into the categoried we care aboutn
      (assoc-bind ((in-args nil) (uniforms :&uniform) (context :&context)
                   (instancing :&instancing))
  