anchor.diff:     be done at compile time."
     (dolist (item items %yaclml-code%)
       (push (cond
  -            ((and (yaclml-constant-p item)
  -                  (stringp item))
  +            ((stringp item)
                item)
               ((keywordp item)
                (string-downcase (princ-to-string item)))
  
positive.code:                               (collect (cons (string-downcase (string (first attribute)))
                                               (second attribute)))))))
                (if body
                    (progn
                      (emit-open-tag tag-name emittable-attributes)
                      (if protect
                          (let ((body-code)
                                (close-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%))
                            (emit-code `(unwind-protect
                                         (progn ,@(mapcar #'writer (fold-strings (nreverse body-code))))
                                         ,@(mapcar #'writer (fold-strings (nreverse close-code))))))
                          (progn
                            (emit-body body)
                            (emit-close-tag tag-name))))
                    (emit-empty-tag tag-name emittable-attributes))))
            `(progn
              ,@(mapcar #'writer (fold-strings (nreverse %yaclml-code%)))
              nil))))))
  
  (defun with-xml-syntax ()
  
negative.code:         (symbol nil)
          (symbol-name nil)
          (next-char nil)
          ;; 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
  