anchor.diff:  (defmacro define-tessellation-callbacks (&body callback-specs)
     `(progn
        (setq *tess-callbacks* '())
  -     ,@(loop for (name callback-type args) in callback-specs 
  +     ,@(loop for (name callback-type args) in callback-specs
             collect `(define-tessellation-callback ,name ,callback-type ,args))))
   
   (define-tessellation-callbacks
  
positive.code:   (gl:end))
  
  (defun register-callbacks (tess)
    (loop for tess-callback in *tess-callbacks*      
       when (compute-applicable-methods 
             (tess-callback-generic-function tess-callback) 
             (cons tess (loop repeat (tess-callback-arg-count tess-callback) collect t)))
       do (glu-tess-callback (glu-tessellator tess) 
                             (tess-callback-callback-type tess-callback)
                             (get-callback (tess-callback-callback tess-callback)))))
  
  (defun free-tess-data (tess)
    "Free data allocated with tess-vertex"
    ;; (loop for pointer in (data tess)
    ;;    when (and (pointerp pointer) 
    ;;              (not (null-pointer-p pointer)))
    ;;    do (when (and (pointerp (mem-ref pointer '%gl:double)) 
    ;;                  (not (null-pointer-p (mem-ref pointer '%gl:double))))
    ;;         (foreign-free (mem-ref pointer '%gl:double)))
    ;;      (foreign-free pointer))
    (setf (data tess) nil))
  
  (defun save-data-to-free (data-to-free tess)
  
negative.code:         (progn
            (setf (slot-value obj 'glu-tessellator) (glu-new-tess))
            (register-callbacks obj)))))
  
  
  (defmethod tess-delete ((tess tessellator))
    (glu-delete-tess (glu-tessellator tess))
  