anchor.diff:          do (unless (char= #\- char)
                (unread-char char stream)
                (return)))
  -  (prog1 (make-comment *root* (consume-until (make-matcher (is "-->")) stream))
  +  (prog1 (make-comment
  +          *root*
  +          (decode-entities
  +           (consume-until (make-matcher (is "-->")) stream)))
       (consume-n 6 stream)))
   
   (defun read-children (stream)
  
positive.code:                          (return children)))))
  
  (defun read-attribute-value (stream)
    (let ((first (peek-char NIL stream NIL NIL)))
      (if (and first (char= first #\"))
          (progn
            (consume stream)
            (prog1 (consume-until (make-matcher (is "\"")) stream)
              (consume stream) ;; ??
              (consume stream)))
          (progn
            (prog1 (consume-until (make-matcher (is " ")) stream)
              (consume stream))))))
  
  (defun read-attribute-name (stream)
    (consume-until (make-matcher (or (is "=") (is " ") (is "/") (is ">"))) stream))
  
negative.code:   (consume-until (make-matcher (or (is " ") (is "/") (is ">"))) stream))
  
  (defun read-text (stream)
    (make-text-node
     *root*
     (decode-entities
      (consume-until (make-matcher (and (is "<") (not (is " ")))) stream))))
  
  (defun read-comment (stream)
    (loop for char = (read-char stream NIL NIL)
  