anchor.diff:  
   (defun make-custom-slots-setf (sketch bindings)
     `(setf ,@(mapcan (lambda (binding)
  -                     `((,(binding-accessor sketch binding) instance) ,(car binding)))
  +                     `((slot-value instance ',(car binding)) ,(cadr binding)))
                      bindings)))
   
   (defun make-reinitialize-setf ()
  
positive.code:                        (,(intern-accessor (car slot)) instance)))
                     *default-slots*)))
  
  ;;; DEFSKETCH macro
  
  (defmacro defsketch (sketch-name bindings &body body)
    (let ((redefines-sketch-p (gensym))
          (default-not-overridden
           (remove-if (lambda (x) (find x bindings :key #'car))
                      (mapcar #'car *default-slots*))))
      `(let ((,redefines-sketch-p (find-class ',sketch-name nil)))
  
         (unless ,redefines-sketch-p
           (defclass ,sketch-name (sketch)
             ,(sketch-bindings-to-slots `,sketch-name bindings)))
  
         ,@(remove-if-not #'identity (make-channel-observers sketch-name bindings))
  
  
negative.code:            (with-slots ,(mapcar #'car bindings) instance
               ,@body)))
  
         (make-instances-obsolete ',sketch-name)
  
         (find-class ',sketch-name))))
  