anchor.diff:       (ignore-errors
         (montezuma:get-document *cl-doc-index* idx)))))
   
  +(defun munge-index (doc-fn
  +                    &key
  +                      (include-packages? t)
  +                      (include-contents? t)
  +                      )
  +  (when include-packages?
  +    ;; handle packages
  +    (%docs-for-term :type :package doc-fn))
  +  
  +  (when include-contents?
  +    ;; handle package contents
  +    (iter
  +      (for p in (indexed-packages))
  +      (iter
  +        (for doc in (docs-for-term :package p))
  +        (funcall doc-fn doc)))))
  +
   (defun %docs-for-term (n v fn)
     (let* ((term (make-term n v))
            (docs (montezuma::term-docs-for (montezuma:reader *cl-doc-index*) term)))
  
positive.code:   (when docs
      (doc-with-fields
       (make-field :id (cl-doc-key package thing type) nil)
       (make-field :name thing)
       (make-field :type type nil)
       (make-field :package package nil)
       (make-field :documentation docs))))
  
negative.code:               (package-for-name (second name))
                (error "No idea how to make package for name:~A" name)))))
  
  (defun index-package (package-name &optional (index-contents? t))
    "Add package documentation and docs for all public symbols to the index"
    (let ((package (find-package package-name)))
      (add-to-index package :package nil)
      (when index-contents?
        (iter (for what in manifest::*categories*)
          (iter (for name in (manifest::names package what))
            (for name-package = (package-for-name name))
            (add-to-index name what name-package))))
      ))
  
  (defun index-packages (&key
  