anchor.diff:            (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))
  
positive.code:          (*types* (make-hash-table :test #'equal))
           (*struct-types* (make-hash-table :test #'equal))
           (*variables* (make-hash-table :test #'equal))
           (*type-deps* (make-hash-table :test #'equal))
           (*extensions* (make-hash-table :test #'equal))
           (*entry-points* (make-hash-table :test #'equal)))
  
negative.code:      (spirv-core:branch @53)
       (spirv-core:label @53)
       (spirv-core:load %54 :int i)
       (literal %l4 :int 4) ;; alternate syntax for literals
       (spirv-core:s-less-than %56 :bool %54 %l4) ; i < 4
       (spirv-core:branch-conditional %56 @50 @51) ; body or break
       (spirv-core:label @50)                      ; body
       (spirv-core:load %58 :vec4 multiplier)
  