anchor.diff:  					  (list :|Base| qid new-element)
   					  table 
   					  indent))))
  -		      
   
   		 ((equal qid '("Option" . "Option"))
   		  (if (eq (car datum) :|None|)
   		      (values '()
   			      :|None|)
   		    (progn 
  -		      ;; (format t "~%----------OPTION-------------~%")
   		      (make-content-items (cdr datum) 
   					  sort
   					  (chase (cadr body) table)
   					  table 
   					  indent))))
  -			
  -		 
   		 (t
  -		  ;; (print (list :unknown-base pattern))
   		  (values ()
   			  (unicode::ustring (format nil "?? Base: ~A.~A ??" (car qid) (cdr qid))))))))
   
         (t
  -       (print (list :unknown pattern))
          (values ()
   	       (unicode::ustring (format nil "?? Key: ~A ??" key)))))))
   
  -
  -
  +;;; ------------------------------------------------------------------------
  +
  +(defun show_sort (msg srt)
  +  (format t "~%~A : ~S~%" msg srt))
  +
  
positive.code: (defpackage "XML")
  (in-package "XML")
  
  (defun show_sort (msg srt)
    (format t "~%~A : ~S~%" msg srt))
  
  (defun parseXML (filename pattern)
    (break "From ~A: ~% read ~S" 
  	 filename
  	 pattern))
  
  (defconstant null-attributes '())
  (defconstant null-whitespace '())
  (defconstant null-chardata   '())
  (defun indentation-chardata (n)
    (cons :|Some| (cons 10 (cons 10 (make-whitespace n)))))
  
  (defconstant newline-chardata   (cons :|Some| (list 36))) ; avoid bootstrap issues by making list directly
  (defconstant tail-chardata   (cons :|Some| (list 43))) ; avoid bootstrap issues by making list directly
  (defconstant tail2-chardata   (cons :|Some| (list 43 43))) ; avoid bootstrap issues by making list directly
  (defconstant cp-chardata   (cons :|Some| (list 36 36))) ; avoid bootstrap issues by making list directly
  
  
  (defun XML::printXML (datum-and-table)
    (let* ((datum (car datum-and-table))
  
negative.code: 	 (main-sort  (car  main-entry))
  	 (main-qid   (cadr main-sort))
  	 (main-id    (cdr  main-qid)))
      (let ((doc (make_Document 
  		(list 
  		 xml::standard_XMLDecl_DocItem  ; first <?xml version="1.0"?>
                   (cons :|WhiteSpace| '(10 10))  ; then a couple of newlines
  		 ;;
                   ;; (cons :|DTD|  (make_DocTypeDecl ...)) ; TODO
  		 ;;
                   (cons :|WhiteSpace| '(10 10))  ; then a couple of newlines
  		 (make-content-item-from-full-element main-id 
  						      datum 
  						      main-sort 
  						      table
  						      0)
  		 ))))
        (print_Document_to_String (svref doc 0)))))
  
  (defun chase (sort table)
    (labels ((aux (sort)
  	    (let ((expansion (cdr (assoc sort table :test 'equal))))
  	      (cond ((null expansion)                 sort)
  		    ((eq (car expansion) :|Base|)     (aux expansion))
  		    ((eq (car expansion) :|Subsort|)  (aux (cadr expansion)))
  