anchor.diff:    (sub-molds nil)
     initial-node)
   
  -(defstruct (node (:predicate nodep))
  +(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."
  
positive.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
  
negative.code:   (check-list-type goal-properties property-name)
    ;; This algorithm is very concise, but it's not optimal AND it's unclear.
    ;; Probably the first target for cleaning up. - Adlai
    (let ((path (set-difference goal-properties (%node-properties start-node))))
      (if (null path) start-node
          (awhen (some (fun (find-transition start-node _)) path)
            (find-node-by-transitions it path)))))
  