anchor.diff:  (defmacro with-facet ((facet (cube facet-name &key (direction :io) type))
                         &body body)
     "Bind the variable FACET to the facet with FACET-NAME of CUBE. FACET
  -is to be treated as dynamic extent: it is not allowed to keep a
  -reference to it. For the description of the DIRECTION parameter, see
  -the type DIRECTION."
  +  is to be treated as dynamic extent: it is not allowed to keep a
  +  reference to it. For the description of the DIRECTION parameter, see
  +  the type DIRECTION."
     `(call-with-facet* ,cube ,facet-name ,direction
                        (lambda (,facet)
                          ,@(when type `((declare (type ,type ,facet))))
  
positive.code: 
  (defun find-view (cube facet-name)
    "Return the view of CUBE for the facet with FACET-NAME or NIL if no
  such view exists."
    (find facet-name (views cube) :key #'view-facet-name))
  
  (defmethod set-up-to-date-p* (cube facet-name view value)
  
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
  