anchor.diff:           ',(mapcar (lambda (stage-name stage-type-name)
                        (cons stage-type-name
                              (mapcar #'rest (remove-if-not
  -                                           λ(eq stage-name _)
  +                                           (lambda (_) (eq stage-name _))
                                              vars :key #'first))))
                      (cons t *stage-names*)
                      (cons t *stage-type-names*)))
  
positive.code:       )))
  
  (defmacro populate-vars ()
    (let ((vars (mapcar λ(destructuring-bind
                               (&key lisp-name name type place-p versions
                                     (stage t) &allow-other-keys) _
                           (declare (ignore versions))
                           (assert lisp-name)
                           (let* ((lisp-name (intern lisp-name :vari.glsl))
                                  (lisp-type (parse-gl-type-name type)))
                             `(,stage ,lisp-name ,name ,lisp-type ,place-p)))
                        (append *definitions-missing-from-glsl-spec*
                                glsl-spec:*variables*))))
  
  
negative.code: (in-package :vari.glsl)
  
  (eval-when (:compile-toplevel :load-toplevel :execute)
    (defvar *definitions-missing-from-glsl-spec*
  