anchor.diff:          (symbol nil)
           (symbol-name nil)
           (next-char nil)
  -        ;; simple-version means that the symbol is the xml tag name, e.g. <foo
  -        ;; otherwise it's a <"foo" or a <(foo), the latter is evaluated and
  -        ;; the result is used as the tag name.
  +        ;; simple-version means that the xml tag name is a symbol, e.g. <foo
  +        ;; otherwise it's a <"foo" or a <(foo). unless it's a symbol it is
  +        ;; evaluated and the result is used as the tag name.
           (simple-version t))
       (unwind-protect
            (unread-char char s)                    ; read the entire token
  
positive.code:    be done at compile time."
    (dolist (item items %yaclml-code%)
      (push (cond
              ((and (yaclml-constant-p item)
                    (stringp item))
               item)
              ((keywordp item)
               (string-downcase (princ-to-string item)))
  
negative.code:                               (collect (cons (string-downcase (string (first attribute)))
                                               (second attribute)))))))
                (if body
                    (let* ((open-code)
                           (body-code)
                           (close-code)
                           (rebind-tag-name-p (consp tag-name))
                           (original-tag-name tag-name))
                      (when rebind-tag-name-p
                        (setf tag-name (gensym "TAG-NAME")))
                      (let ((%yaclml-code% '()))
                        (emit-open-tag tag-name emittable-attributes)
                        (setf open-code %yaclml-code%))
                      (let ((%yaclml-code% '()))
                        (emit-body body)
                        (setf body-code %yaclml-code%))
                      (let ((%yaclml-code% '()))
                        (emit-close-tag tag-name)
                        (setf close-code %yaclml-code%))
                      (if protect
                          (if rebind-tag-name-p
                              (emit-code `(let ((,tag-name ,original-tag-name))
                                           ,@(emitter open-code)
                                           (unwind-protect
                                                (progn ,@(emitter body-code))
                                             ,@(emitter close-code))))
                              (emit-code `(progn
                                           ,@(emitter open-code)
                                           (unwind-protect
                                                (progn ,@(emitter body-code))
                                             ,@(emitter close-code)))))
                          (if rebind-tag-name-p
                              (emit-code `(let ((,tag-name ,original-tag-name))
                                           ,@(emitter open-code)
                                           ,@(emitter body-code)
                                           ,@(emitter close-code)))
                              (emit-code `(progn
                                           ,@(emitter open-code)
                                           ,@(emitter body-code)
                                           ,@(emitter close-code))))))
                    (emit-empty-tag tag-name emittable-attributes))))
            `(progn
              ,@(emitter %yaclml-code%)
              nil))))))
  
  (defun with-xml-syntax ()
  