anchor.diff:  (defclass vertex-array-object (gl-object)
     ())
   
  +(defun make-attribute-set-key (attr-set)
  +  (let ((vertex-keys (mapcar (lambda (binding)
  +                               (destructuring-bind (name area index)
  +                                   binding
  +                                 (declare (ignore name))
  +                                 (list (id (buffer area))
  +                                       index
  +                                       (components area)
  +                                       (normalizedp area)
  +                                       (stride area)
  +                                       (offset area))))
  +                             (array-bindings attr-set))))
  +    (if (element-binding attr-set)
  +        (cons (id (buffer (element-binding attr-set))) vertex-keys)
  +        vertex-keys)))
  +
   (defmethod gl-finalized-p ((obj attribute-set))
     (slot-boundp obj 'vao))
   
  
positive.code:    (finalize-queue :accessor finalize-queue :initform nil)
     ;; alist of (buffer . buffer-areas)
     (upload-queue :accessor upload-queue :initform nil)
     (render-stages :accessor render-stages :initform nil))
    (:documentation "The class responsible for all rendering."))
  
  (defun process-finalize-queue (renderer)
    (loop
  
negative.code:         ;; XXX bindings
        (setf (current-state renderer) state))))
  
  (defmethod draw ((renderer renderer))
    (let ((*renderer* renderer))
      (loop
  