anchor.diff:                (continuation (continuation restriction)))
             (mapc (lambda (name)
                     (psetf messages
  -                         (apply-restriction name
  -                                            (gensym (format nil "~a-" name))
  -                                            messages)
  +                         (apply-restriction name (unique-name name) messages)
                            continuation
                            (apply-restriction name
  -                                            (gensym (format nil "~a-" name))
  +                                            (unique-name name)
                                               continuation)))
                   (restricted-names restriction))
             (make-instance (class-of restriction)
  
positive.code:               (setf abstraction
                      ;; TODO: apply-restriction should handle all names
                      ;;       at once, rather than one at a time
                      (apply-restriction name
                                         (gensym (format nil "~a-" name))
                                         abstraction)))
              (names process))
        abstraction))
    (:method ((restriction concretion))
  
negative.code:        (set= (channel-names left) (channel-names right))
         (set= (union (bound-names left) (bound-variables left))
               (union (bound-names right) (bound-variables right)))))
  
  (defun unique-name (name)
    (gensym (format nil "~a-~d-" name (ccl::process-tcr (current-thread)))))
  
  (defgeneric apply-restriction (local-name global-name process)
    (:documentation "Replaces all instances of a restricted name with a globally-
  