anchor.diff:                            joined-index
                             row-fields row-fields-sort-predicates
                             col-fields col-fields-sort-predicates)
  +
     (let ((table (with-output-to-string (str) 
                    (pivot-table-html str
                                      joined-index
  
positive.code:                     '(:lib-world :lisp) (list #'string< #'string<))
        
        (print-report "pivot_ql-lisp_lib.html"
                      '(:lib-world :lisp) (list #'string<)
                      '(:libname) (list #'string< #'string<))
        (print-report "pivot_ql-lib_lisp.html"
                      '(:lib-world :libname) (list #'string<)
                      '(:lisp) (list #'string< #'string<))
        
        (print-report "pivot_lisp-lib_ql.html"
                      '(:lisp :libname) (list #'string<)
                      '(:lib-world) (list #'string< #'string<))
        (print-report "pivot_lisp-ql_lib.html"
                      '(:lisp :lib-world) (list #'string<)
                      '(:libname) (list #'string< #'string<))
        
        (print-report "pivot_lib-lisp_ql.html"
                      '(:libname :lisp) (list #'string<)
                      '(:lib-world) (list #'string< #'string<))
        (print-report "pivot_lib-ql_lisp.html"
                      '(:libname :lib-world) (list #'string<)
                      '(:lisp) (list #'string< #'string<)))))
  
  (defun generate-reports (&optional (db *db*))
                            
  
negative.code:                          joined-index
                           row-fields row-fields-sort-predicates
                           col-fields col-fields-sort-predicates)
  
    (assert (= (length row-fields) (length row-fields-sort-predicates)))
    (assert (= (length col-fields) (length col-fields-sort-predicates)))
  
    (princ "<table border=\"1\" class=test-table>" out)
    (let (rows
          cols
  