anchor.diff:  (defmacro compare-and-swap (place old-value new-value)
     #+sbcl
     (alexandria:with-unique-names (old-val-var)
  -    ` (let ((,old-val-var ,old-value))
  -        (eq ,old-val-var (sb-ext:compare-and-swap ,place ,old-val-var
  -                                                  ,new-value))))
  +    `(let ((,old-val-var ,old-value))
  +       (eq ,old-val-var (sb-ext:compare-and-swap ,place ,old-val-var
  +                                                 ,new-value))))
     #+ccl
     `(ccl::conditional-store ,place ,old-value ,new-value)
     #+lispworks
     `(system:compare-and-swap ,place ,old-value ,new-value)
     #+allegro
     `(excl:atomic-conditional-setf ,place ,new-value ,old-value)
  -  #-(or allegro lispworks ccl sbcl) `(error "Not supported."))
  +  #-(or allegro lispworks ccl sbcl)
  +  (error "Not supported."))
    
   
  
positive.code: 
  (defun destroy-facet (cube facet-name)
    "Free resources associated with the facet with FACET-NAME and remove
  it from VIEWS of CUBE."
    (let ((view (remove-view cube facet-name)))
      (when (and view
                 (get-permission-to-destroy (view-permission-to-destroy view)))
  
negative.code: 
  (defmethod call-with-facet* (cube facet-name direction fn)
    "The default implementation of CALL-WITH-FACET* is defined in terms
    of the WATCH-FACET and the UNWATCH-FACET generic functions. These
    can be considered part of the @FACET-EXTENSION-API."
    ;; If WATCH-FACET fails, don't unwatch it.
    (let ((facet (watch-facet cube facet-name direction)))
      (unwind-protect
  