anchor.diff:  
   (defun install-document-bindings (parser)
     (let ((frame-marker (open-frame parser)))
  -    (push-binding parser :eof (lambda (parser token) 
  +    (push-binding parser :eof (lambda (token) 
                                   (declare (ignore token))
                                   (pop-bindings parser frame-marker)))
  -    (push-binding parser :blank #'ignore-token)
  +    (push-binding parser :blank (lambda (token) (ignore-token token)))
       (push-binding parser 
                     (lambda (token)
                       (and (indentation-p token) (= (spaces token) 2)))
  -                  (lambda (parser token)
  +                  (lambda (token)
                       (open-subdocument parser (spaces token) "blockquote")))
   
       (push-binding parser 
                     (lambda (token)
                       (and (indentation-p token) (= (spaces token) 4)))
  -                  (lambda (parser token)
  +                  (lambda (token)
                       (open-verbatim parser (spaces token) "pre")))
   
       (push-binding parser #'characterp 
  -                  (lambda (parser token)
  +                  (lambda (token)
                       (open-paragraph parser "p")
                       (process-token parser token)))
  -    (push-binding parser #\* (make-header-handler))))
  +    (push-binding parser #\* (make-header-handler parser))))
   
   (defun open-paragraph (parser tag)
     (let ((frame-marker (open-frame parser))
           (paragraph (open-element parser tag)))
       (push-binding parser :blank 
  -                  (lambda (parser token)
  +                  (lambda (token)
                       (declare (ignore token))
                       (pop-bindings parser frame-marker)
                       (close-element parser paragraph)))
  -    (push-binding parser #'characterp #'add-text)
  -    (push-binding parser #\Newline (lambda (parser token)
  +    (push-binding parser #'characterp (lambda (token) (add-text parser token)))
  +    (push-binding parser #\Newline (lambda (token)
                                        (declare (ignore token))
                                        (add-text parser #\Space)))
  -    (push-binding parser #\\ #'slash-handler)))
  +    (push-binding parser #\\ (make-slash-handler parser))))
   
   (defun open-block (parser tag)
     (let ((frame-marker (open-frame parser))
           (element (open-element parser tag)))
       (push-binding parser #\}
  -                  (lambda (parser token)
  +                  (lambda (token)
                       (declare (ignore token))
                       (pop-bindings parser frame-marker)
                       (close-element parser element)))))
  
positive.code:     (push-binding parser 
                    (lambda (token)
                      (and (indentation-p token) (= (spaces token) indentation)))
                    (lambda (parser token)
                      (declare (ignore parser))
                      (setf current-indentation (spaces token))))
  
      (push-binding parser 
                    (lambda (token)
                      (and (indentation-p token) (< (spaces token) indentation)))
                    (lambda (parser token)
                      (declare (ignore token))
                      (pop-bindings parser frame-marker)
                      (close-element parser verbatim)))
  
negative.code:     (push-binding parser 
                    (lambda (token)
                      (and (indentation-p token) (> (spaces token) indentation)))
                    (lambda (token)
                      (setf current-indentation (spaces token))
                      (loop repeat (- (spaces token) indentation) do (add-text parser #\Space))))
  
      (push-binding parser #'characterp (lambda (token) (add-text parser token)))
      (push-binding parser :blank (lambda (token)
                                    (declare (ignore token))
                                    (add-text parser #\Newline)
                                    (add-text parser #\Newline)))
  
      (push-binding parser #\Newline (lambda (token)
                                       (declare (ignore token))
                                       (add-text parser #\Newline)
                                       (loop repeat (- current-indentation indentation) do (add-text parser #\Space))))
      ))
      
  
  (defun make-header-handler (parser)
    (let ((level 1))
      (lambda (token)
        (declare (ignore token))
        (let ((frame-marker (open-frame parser)))
          (push-binding parser t (lambda (token) (illegal-token token)))
          (push-binding parser #\* (lambda (token) (declare (ignore token)) (incf level)))
          (push-binding parser #\Space (lambda (token)
                                         (declare (ignore token))
                                         (pop-bindings parser frame-marker)
                                         (open-paragraph parser (format nil "h~d" level))))))))
  
  (defun make-slash-handler (parser)
    (lambda (token)
      (declare (ignore token))
      (let ((frame-marker (open-frame parser)))
        (push-binding parser "\\{}*[]" (lambda (token)
                                         (pop-bindings parser frame-marker)
                                         (add-text parser token)))
        (push-binding parser #'tag-name-char-p 
                      (let ((name (make-text-buffer)))
                        (lambda (token)
                          (push-binding parser #\{
                                        (lambda (token)
                                          (declare (ignore token))
                                          (unless (plusp (length name))
                                            (error "Empty names not allowed."))
                                          (pop-bindings parser frame-marker)
                                          (open-block parser name)))
                          (append-text name token)))))))
        
  
  
  