anchor.diff:     (doc-string :initarg :doc-string)
      (declarations :initarg :declarations)
      (missing-dependencies :initarg :missing-dependencies :initform nil)
  -   (cached-compile-results :initarg :compiled :initform nil)))
  +   (cached-compile-results :initarg :compiled :initform nil)
  +   (diff-tag :initarg :diff-tag)))
   
   (defmethod pipeline-stages ((spec pipeline-spec))
     (with-slots (vertex-stage
  
positive.code:                    :actual-uniforms uniforms
                     :doc-string nil
                     :declarations nil
                     :missing-dependencies nil)))
  
  (defmacro with-gpu-func-spec (func-spec &body body)
    `(with-slots (name in-args uniforms actual-uniforms context body instancing
                       equivalent-inargs equivalent-uniforms doc-string
                       declarations missing-dependencies) ,func-spec
       (declare (ignorable name in-args uniforms actual-uniforms context body
                           instancing equivalent-inargs equivalent-uniforms
                           doc-string declarations missing-dependencies))
       ,@body))
  
  (defmacro with-glsl-stage-spec (glsl-stage-spec &body body)
  
negative.code: 
  (defvar *gpu-func-specs-lock* (bt:make-lock))
  (defvar *gpu-func-specs* nil)
  (defvar *gpu-func-diff-tag* 0)
  
  (defvar *dependent-gpu-functions-lock* (bt:make-lock))
  (defvar *dependent-gpu-functions* nil)
  