anchor.diff:        
   ;;; ---------------------------------------------------------------------------
   
  -(defun header-p (chunk &key (depth))
  +(defun header-p (chunk &key depth start)
     (let* ((header-elements  '(header1 header2 header3 
                                header4 header5 header6))
            (header-elements (subseq header-elements
  -                                  0 (min (or depth (length header-elements))
  +                                  (or start 0)
  +                                  (min (or depth (length header-elements))
                                            (length header-elements)))))
       (some-element-p (markup-class chunk)
                       (lambda (class)
  
positive.code: (defun set-property (phase args result)
    ;; {set-property name value}
    (declare (ignore result))
    (assert (eq phase :parse))
    (if (length-at-least-p args 2)
      (bind (((name &rest value) args))
        (setf value (format nil "~{~a~^ ~}" value))
        (setf (document-property name) value))
      (warn "Not enough arguments to set-property (need at least 2)"))
    nil)
  
  
  
negative.code: 
  ;;; ---------------------------------------------------------------------------
  
  (defun add-anchors (document &key depth start)
    (let* ((index -1)
           (header-level nil)
           (header-indexes (nreverse
  