anchor.diff:     ;; it means we have to keep the data structures in sync.
      (messages :initform (make-hash-table :test #'equal) :reader messages)
      (kells :initform (make-hash-table :test #'equal) :reader kells)
  -   (local-patterns :initform (make-hash-table :test #'equal) :reader local-patterns)
  +   (local-patterns :initform (make-hash-table :test #'equal)
  +                   :reader local-patterns)
      (up-patterns :initform (make-hash-table :test #'equal) :reader up-patterns)
  -   (down-patterns :initform (make-hash-table :test #'equal) :reader down-patterns)
  -   (kell-patterns :initform (make-hash-table :test #'equal) :reader kell-patterns)))
  +   (down-patterns :initform (make-hash-table :test #'equal)
  +                  :reader down-patterns)
  +   (kell-patterns :initform (make-hash-table :test #'equal)
  +                  :reader kell-patterns)))
   
   (defun kell (name &optional process continuation)
     (if continuation
  
positive.code:    (messages :initform nil :type list :accessor messages)
     (kells :initform nil :type list :accessor kells)
     (triggers :initform nil :type list :accessor triggers)
     (primitives :initform nil :type list :accessor primitives))
    (:documentation
     "A parallel composition is an unordered set of processes. We flatten nested
      compositions and split them up based on their type. This makes for quicker
  
negative.code:   "Do nothing for primitives."
    (values))
  
  ;;; FIXME: there are really two functions here – one replaces the value in place
  ;;;        in the parent container, the other is functional. The functional one
  ;;;        is right, but we have to convert other code.
  (defgeneric remove-process-from (process kell)
    (:method (process kell)
      (warn "The process ~a is not contained in ~a, and thus can not be removed."
  