anchor.diff:  
   (defclass graphics-state ()
     ((bindings)
  -   (program)
  +   (program :accessor program :initform :program)
      (uniform-sets)))
   
   ;;; Uniforms variables, as defined in OpenGL, are slowly-changing values
  
positive.code:   ((descriptor :accessor descriptor :initarg :descriptor)
     (local-storage :accessor local-storage)
     (strategy-data :accessor strategy-data)))
  
  (defun has-valid-strategy-p (uset)
    (with-slots (descriptor strategy-data)
  
negative.code:   ((shaders :accessor shaders :initarg :shaders :initform nil)
     (uniforms :accessor uniforms :initarg :uniforms :initform nil
               :documentation "Information on uniforms declared within the program shader source.")
     (uset-descriptors :accessor uset-descriptors :initform nil)
     (status :accessor status :initarg :status)
     (link-log :accessor link-log :initarg :link-log :initform nil)
     (current-usets :accessor current-usets :initform nil)))
  
  ;;; Set the uniform values in a program, assuming  that it is currently bound.
  (defun upload-uset-to-program (uset program)
    (let ((descriptor (descriptor uset)))
      ))
  
  (defmethod gl-finalized-p ((obj shader))
    (slot-boundp obj 'status))
  