anchor.diff:    (or (aand (item-at (subparts part) kind)
               (item-at it name))
         (call-next-method)))
  -
  -;;; ---------------------------------------------------------------------------
  -    
  -#+Remove
  -(defmethod find-part ((part doclisp-assembly) kind name)
  -  (when (parents part)
  -    ;; any parent will do in a storm
  -    (find-part (car (parents part)) kind name)))
  -
  -;;?? NO
  -#+Ignore
  -(defmethod find-part ((part doclisp-assembly) kind name)
  -  (let ((visited (make-container 'simple-associative-container)))
  -    (some-element-p (parents part)
  -                    (lambda (parent)
  -                      (unless (item-at-1 visited parent)
  -                        (setf (item-at-1 visited parent) t)
  -                        (find-part parent kind name))))))
  -
  -#+No
  -(defmethod find-part ((part doclisp-assembly) kind name)
  -  (some-element-p (parents part)
  -                  (lambda (parent)
  -                    (find-part parent kind name))))
   
   ;;; ---------------------------------------------------------------------------
   
  
positive.code: 
  ;;; ---------------------------------------------------------------------------
  
  (defgeneric document-part-p (name-holder part)
    (:documentation ""))
  
  ;;; ---------------------------------------------------------------------------
  
  ;; from utils
  (defmethod name (object)
    (type-of object))
  
negative.code:   (html
     ((:div :id "header")
      (add-contents-link part force-contents-link?)
      (build-index-links part *root-part* *current-index*))))
  
  ;;; ---------------------------------------------------------------------------
  
  