anchor.diff:               (:constructor make-lineage
                              (parents &aux (hierarchy (compute-hierarchy parents)))))
     "Information about an object's ancestors and descendants."
  +  (members (make-weak-hash-table :weakness :key :test 'eq)) ; The lineage's members
     (parents   nil :read-only t) ; A set of objects
     (hierarchy nil)) ; A precedence list of all the lineage's ancestors
   
  
positive.code:       (setf (%object-mold object) (ensure-mold parents nil))
      (topological-sort-conflict (conflict)
        (error 'object-hierarchy-error :object object :conflict conflict)))
    (apply 'init-object object all-keys))
  
  (defun spawn (&rest objects)
  
negative.code:       (setf (find-mold parents)
              (make-mold (aprog1 (make-lineage parents)
                           (dolist (parent parents)
                             (push it (%object-children parent))))
                         (vector)))))
  
  (defun ensure-transition (mold property-name)
  