anchor.diff:                                                        :key #'first
                                                         :test #'string=))
                                               uniforms))
  -                 (context (cons stage-type (remove stage-type context)))
  +                 (context (remove stage-type context))
                    (replacements
                     (loop :for (k v) :in replacements
                        :for r = (let* ((u (find k uniforms :key #'first
  
positive.code:                     (declare (ignore c))
                      (invoke-restart
                       'varjo-conditions:allow-call-function-signature))))
                (let* ((context (union '(:vertex :fragment) context))
                       (context (swap-version (lowest-suitable-glsl-version context)
                                              context))
                       (compiled
                        (varjo:translate
                         (varjo:make-stage in-args uniforms context body t))))
  
                  (setf actual-uniforms ;;[2]
                        (mapcar #'varjo:to-arg-form
                                (remove-if #'varjo:ephemeral-p
  
negative.code:                            `((let ,replacements
                                 ,@code))
                             code)))
              (varjo:make-stage stage-type
                                in-args
                                final-uniforms
                                context
                                body
  