anchor.diff:           (structurally-unchanged-p (and (every #'identity current-stage-tags)
                                           (every #'identity new-stage-tags)
                                           (equal current-stage-tags new-stage-tags)))
  +         (state-tag (mod (reduce #'+ new-stage-tags)
  +                         (expt 2 16)))
            ;; we generate the func that compiles & uploads the pipeline
            ;; and also populates the pipeline's local-vars
            (primitive (varjo.internals:primitive-name-to-instance
  
positive.code:            (optimize (speed 3) (safety 0) (debug 0)))
    (values))
  
  (defun+ gen-recompile-func (name stage-pairs post context state-var)
    (let* ((stages (mapcat λ(list (car _) (func-spec->name (cdr _)))
                           stage-pairs))
           (gpipe-args (append stages (list :post post))))
  
negative.code:                                       compiled-stages)))
                     (setf (pipeline-state-has-fragment-stage state)
                           (not (null frag))))
                   (setf (pipeline-state-diff-tag state)
                         ,state-tag)
                   new-prog-ids)))
           (%post-init ,post)))))
  
  