anchor.diff:      ((:-) (format nil "-(~A)" first-elt))))
   
   (defun make-glsl-operation (symbol l)
  -  (let ((first-elt (first l))
  -        (rest-elt (rest l)))
  +  (let ((first-elt (glsl-element (first l)))
  +        (rest-elt (mapcar #'glsl-element (rest l))))
       (ecase symbol
         ((:+ :* :/ :> :< :>= :<= :and :or) (make-glsl-binary-operation symbol first-elt rest-elt))
         ((:not) (make-glsl-unary-operation symbol first-elt))
  -      ((:-) (if (eq (length rest-elt) 0)
  +      ((:-) (if (= (length rest-elt) 0)
                  (make-glsl-unary-operation symbol first-elt)
                  (make-glsl-binary-operation symbol first-elt rest-elt))))))
   
  
positive.code: ;;;; file.
  
  (in-package #:cl-foo)
  
  (defun make-glsl-binary-operation (symbol first-elt rest-elt)
    (ecase symbol
  
negative.code:          (gl:delete-program ,program)))))
  
  (defun make-glsl-shader (l)
    (format nil "~{~A~}" (mapcar #'make-glsl-line l)))
  