anchor.diff:                             (out-block-name-for stage)
                              (if (typep stage 'vertex-stage)
                                  (rest glsl-decls)
  -                               glsl-decls))))
  +                               glsl-decls)
  +                           :instance-name *out-block-name*)))
                     glsl-decls))
   
           (setf (output-variables post-proc-obj) output-variables))
  
positive.code: (defun gen-in-arg-strings (post-proc-obj)
    (with-slots (env stage) post-proc-obj
      (let* ((expanded-vars (expanded-input-variables env))
             (is-geom (typep (stage post-proc-obj) 'geometry-stage))
             (instance-name (when is-geom *in-block-instance-name*))
             (block-arr-length (when is-geom
                                 (first
                                  (v-dimensions
                                   (v-type-of
  
negative.code:   (error "Varjo: Cannot have stage arguments with ephemeral types:~%~a has type ~a"
           (name input-variable) var-type))
  
  (defun should-make-an-ephermal-block-p (stage)
    (with-slots (previous-stage) stage
      (and (typep previous-stage 'vertex-stage)
           (or (typep stage 'geometry-stage)
               (typep stage 'tessellation-control-stage)
               (typep stage 'tessellation-evaluation-stage)))))
  
  (defmethod expand-input-variable ((stage stage)
                                    (var-type v-type)
                                    (input-variable input-variable)
                                    (env environment))
    (let* ((type (set-flow-id var-type (flow-id!)))
           (type (if (should-make-an-ephermal-block-p stage)
                     (make-into-block-array stage type *in-block-instance-name*)
                     type)))
      (values (v-make-value type env :glsl-name (glsl-name input-variable))
              (list (make-instance 'input-variable
  