anchor.diff:  node-transitions of a `node'."
     '(cons property-name node))
   
  +(deftype mold ()
  +  "A union of NODE and MOLT-TOP, mainly here for convenience:
  +  (typep (ensure-mold <parents> <properties>) 'mold) => T"
  +  '(or node mold-top))
  +
   (defun make-mold (parents)
     (aprog1 (%make-mold parents)
  -    (setf (%mold-initial-node it)
  +    (setf (mold-top-initial-node it)
             (make-node :mold it))))
   
   (macrolet ((define-node-mold-function (name inner docstring)
                `(defun ,name (mold) ,docstring
                   (etypecase mold
  -                  (mold (,inner mold))
  -                  (node (,name (%node-mold mold)))))))
  -  (define-node-mold-function mold-parents %mold-parents
  +                  (mold-top (,inner mold))
  +                  (node (,name (node-mold mold)))))))
  +  (define-node-mold-function mold-parents mold-top-parents
       "Returns the parents of MOLD, which can be either a `mold' or a `node'.")
  -  (define-node-mold-function mold-hierarchy %mold-hierarchy
  +  (define-node-mold-function mold-hierarchy mold-top-hierarchy
       "Returns the hierarchy list of MOLD, which can be either a `mold' or a `node'.")
  -  (define-node-mold-function mold-sub-molds %mold-sub-molds
  +  (define-node-mold-function mold-sub-molds mold-top-sub-molds
       "Returns the cached child molds of MOLD, which can be either a `mold' or a `node'."))
   
   (defun mold-properties (mold)
     "Returns the properties of MOLD, which should be a `node'."
     (if (typep mold 'node)
  -      (%node-properties mold)
  +      (node-properties mold)
         (error 'type-error :datum mold :expected-type 'node)))
   
   (defvar *molds* (make-hash-table :test 'equal)
  
positive.code:   (sub-molds nil)
    initial-node)
  
  (defstruct (node (:predicate nodep) (:conc-name %node-))
    "Transitions are auxiliary data structures for molds, storing information
  about an object's direct properties. Objects keep a reference to their
  current transition as an entry point to the mold datastructure."
  
negative.code: If no such node exists, returns NIL."
    (check-type node node)
    (check-type property-name property-name)
    (cdr (assoc property-name (node-transitions node) :test 'eq)))
  
  (defun find-node-by-transitions (start-node goal-properties)
    "Searches the transition tree from START-NODE to find the node containing
  