anchor.diff:    (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))))
  +  (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)))))
  
positive.code:   (check-type node node)
    (check-type property-name property-name)
    (or (find-transition node property-name)
        (aconsf (%node-transitions node) property-name
                (make-node :mold (%node-mold node)
                           :properties (cons property-name
                                             (%node-properties node))))))
  
  (defun ensure-mold (parents properties)
    "Returns the node with properties PROPERTIES of the mold for PARENTS,
  
negative.code:   (sub-molds nil)
    initial-node)
  
  (defstruct (node (:predicate nodep))
    "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."
  