anchor.diff:  
     (unordered-list (listy :ul "-"))
   
  -  (definition-list
  -   (=> (indented 2 (progn (look-ahead term) (many1 (or term definition)))) `(:dl ,@_)))
  -
  -  (term
  -   (try indentation)
  -   "% "
  -   (=> (many1 (or (text-until (or tag-open " %")) tagged-text)) `(:dt ,@_))
  -   " %"
  -   eol)
  -
  -  (definition
  -   (=> (many1 definition-paragraph) `(:dd ,@_)))
  -
  -  (definition-paragraph
  -   (try (progn indentation (not-followed-by "% ")))
  -   paragraph)
  -
  -  (blockquote
  -   (=> (indented 2 (many1 blockquote-element)) `(:blockquote ,@_)))
  -
  -  (blockquote-element
  -   (try (not-followed-by (progn (counted 3 #\Space) (none-of #\Space))))
  -   element)
  -
  -  (linkdef
  -   (-> (between "[" "]" (text-until "]")) name)
  -   " "
  -   (=> (between "<" ">" (text-until ">")) `(:link_def (:link ,name) (:url ,_)))
  -   blank)
  -
  -  (section-divider whitespace "§" blank `(:section "§"))
  -
  -  (paragraph (=> paragraph-text `(:p ,@_)))
  -
  -  (modeline
  -   (try "-*-")
  -   (many (progn (not-followed-by blank) any-char))
  -   blank
  -   nil)
  -
  -  (paragraph-text
  -   (=> (many1 (or (text-until (or tag-open "[" blank)) tagged-text linkref)))
  -   blank)
  -
  -  (linkref
  -   "["
  -   (-> link-contents contents)
  -   (=> (optional link-key) `(:link ,@contents ,@(if _ (list `(:key ,_)))))
  -   "]")
  -
  -  (link-contents
  -   (many1 (or (text-until (or tag-open "|" "]")) tagged-text)))
  -
  -  (link-key
  -   "|" (text (many1 (none-of "]"))))
  -
  -  (escaped-char
  -   (try (progn "\\" (or #\\ #\{ #\} #\* #\# #\- #\[ #\] #\% #\| #\<))))
  -
  -  ((unescaped p)
  -   (not-followed-by escaped-char) (match p))
  -
  -  (newline
  -   (not-followed-by blank)
  -   newline-char
  -   indentation
  -   (value #\Space))
  -
  -  (newline-char (setf so-far 0) #\Newline)
  -
  -  (plain-char (in-subdoc (! "}") any-char))
  -
  -  (tag-open (unescaped "\\") (=> name) "{")
  -
  -  (tagged-text
  -   (-> tag-open tag)
  -   (=> (if (member tag subdocs) subdoc-contents simple-contents) `(,tag ,@_))
  -   "}")
  -
  -  (subdoc-contents
  -   (incf subdoc-level)
  -   (=> (many element)) eod
  -   (decf subdoc-level))
  -
  -  (simple-contents
  -   (many1 (or (text-until (or tag-open "}")) tagged-text)))
  -
  -  (name (=> (text (many1 (char-if #'alpha-char-p))) (keywordize _)))
  -
     ((listy name marker)
      (=> (indented 2 (many1 (list-element marker))) `(,name ,@_)))
   
  
positive.code:    (decf indent n))
  
    ((text-until p)
     (=> (many1 (progn (not-followed-by p) (or escaped-char newline plain-char))) (format nil "~{~a~}" _)))
  
    ((in-subdoc p1 p2)
     (if (> subdoc-level 0) (match p1) (match p2)))
  
negative.code:    (=> (many1 (progn indentation (or ordered-list unordered-list paragraph))) `(:li ,@_))
     (decf indent 2))
  
    (definition-list
     (=> (indented 2 (progn (look-ahead term) (many1 (or term definition)))) `(:dl ,@_)))
  
    (term
     (try indentation)
     "% "
     (=> (many1 (or (text-until (or tag-open " %")) tagged-text)) `(:dt ,@_))
     " %"
     eol)
  
    (definition
     (=> (many1 definition-paragraph) `(:dd ,@_)))
  
    (definition-paragraph
     (try (progn indentation (not-followed-by "% ")))
     paragraph)
  
    (blockquote
     (=> (indented 2 (many1 blockquote-element)) `(:blockquote ,@_)))
  
    (blockquote-element
     (try (not-followed-by (progn (counted 3 #\Space) (none-of #\Space))))
     element)
  
    (linkdef
     (-> (between "[" "]" (text-until "]")) name)
     " "
     (=> (between "<" ">" (text-until ">")) `(:link_def (:link ,name) (:url ,_)))
     blank)
  
    (section-divider whitespace "§" blank `(:section "§"))
  
    (paragraph (=> paragraph-text `(:p ,@_)))
  
    (modeline
     (try "-*-")
     (many (progn (not-followed-by blank) any-char))
     blank
     nil)
  
    (paragraph-text
     (=> (many1 (or (text-until (or tag-open "[" blank)) tagged-text linkref)))
     blank)
  
    (linkref
     "["
     (-> link-contents contents)
     (=> (optional link-key) `(:link ,@contents ,@(if _ (list `(:key ,_)))))
     "]")
  
    (link-contents
     (many1 (or (text-until (or tag-open "|" "]")) tagged-text)))
  
    (link-key
     "|" (text (many1 (none-of "]"))))
  
    (escaped-char
     (try (progn "\\" (or #\\ #\{ #\} #\* #\# #\- #\[ #\] #\% #\| #\<))))
  
    ((unescaped p)
     (not-followed-by escaped-char) (match p))
  
    (newline
     (not-followed-by blank)
     newline-char
     indentation
     (value #\Space))
  
    (newline-char (setf so-far 0) #\Newline)
  
    (plain-char (in-subdoc (! "}") any-char))
  
    (tag-open (unescaped "\\") (=> name) "{")
  
    (tagged-text
     (-> tag-open tag)
     (=> (if (member tag subdocs) subdoc-contents simple-contents) `(,tag ,@_))
     "}")
  
    (subdoc-contents
     (incf subdoc-level)
     (=> (many element)) eod
     (decf subdoc-level))
  
    (simple-contents
     (many1 (or (text-until (or tag-open "}")) tagged-text)))
  
    (name (=> (text (many1 (char-if #'alpha-char-p))) (keywordize _)))
  
    ;; Whitespace and indentation handling
  
    (whitespace (many (or #\Space #\Tab)))
  