anchor.diff:      gl_Position = position;
   }")
   
  -(defparameter *fragment-shader* "
  +(defvar *fragment-shader* "
   #version 330
   out vec4 outputColor;
   void main() {
  
positive.code: 
  (defvar out *standard-output*)  (defvar dbg *debug-io*) (defvar err *error-output*)
  
  ;; gl:with-gl-array might remedy this!
  ;;  const float vertex-positions[] } { 0.75f, ... 1.0f, };
  ;; if *vectex-positions* isn't of type gl:gl-array (which it gets from gl:alloc-gl-array)
  ;; (gl:buffer-data .. *vector-positions*) will complain explicitly about this, and sdl2
  ;; will crash
  
  ;; TODO: lisp builtins possible?
  (defvar *vertex-positions* (gl:alloc-gl-array :float 12))
  ;;the alpha value seems to cause some scaling to happen...?
  (defvar *verts* #(0.75  0.75 0.0 1.0
  			0.75 -0.75 0.0 1.0
  
negative.code: 	       (sdl2:push-event :quit))
  	     (let ((k (sdl2:scancode-value keysym)))
  	       (format t "~a~%" k)))
  	    (:idle () 
  		   ;; TODO: state setting functions don't need to run every iteration
  		   ;; of the rendering loop, instead only when change is needed!!
  		   (gl:bind-buffer :array-buffer position-buffer-object)
  