anchor.diff:  (defvar *struct-types*)
   (defvar *variables*)
   (defvar *extensions*)
  -;(defvar *literals*)
  +(defvar *literal-names*) ;; allow alternate names for literals
   ;(defvar *globals*)
   (defvar *entry-points*)
   (defvar *current-function*)
  
positive.code:      (spirv-core:branch @53)
       (spirv-core:label @53)
       (spirv-core:load %54 :int i)
       (spirv-core:s-less-than %56 :bool %54 (the :int 4)) ; i < 4
       (spirv-core:branch-conditional %56 @50 @51) ; body or break
       (spirv-core:label @50)                      ; body
       (spirv-core:load %58 :vec4 multiplier)
  
negative.code:           (list* (car *current-form*) id type
                   :decorate decorate :default default
                   (when layout (list :layout layout))))))
  
  
  (defpass1 literal (id type value)
    (setf (gethash id *literal-names*)
          (normalize-literals-and-types `(the ,type ,value)))
    (setf *current-form* nil))
  
  (defpass1 input (id type &key decorate default)
    (pass1/variable :input id type decorate default))
  