anchor.diff:    (error "Fatal BibTeX error"))
   
   ;;; Interface to BibTeX entries
  -
  -;; BibTeX entries are EQUALP hash tables, the keys being arbitrary strings.
  -;; In addition, we use two symbols as keys:
  -
  -(defvar +cite-key+ '+cite-key+)
  -(defvar +entry-type+ '+entry-type+)
  -
  -(defmacro bib-entry-cite-key (entry)
  -  `(gethash +cite-key+ ,entry))
  -
  -(defmacro bib-entry-type (entry)
  -  `(gethash +entry-type+ ,entry))
   
   ;;; Reading the database files
   
  
positive.code:       (setf (bib-entry-cite-key entry) key) 
        (loop (multiple-value-bind (name value)
  		(read-bib-field t)
  	      (setf (gethash name entry)
  		    value))
  	    (let ((char (peek-char t *bib-stream*)))
  	    (cond
  
negative.code: 	(neighbors-hash (make-hash-table :test 'equalp)))
      ;; Compute the neighbors (symmetric)
      (loop for anchor being each hash-key in *bib-database* using (hash-value entry)
         do (let* ((keys-string (bib-entry-ref "EQUIVALENT-ENTRIES" entry))
  		 (new-equivalent-keys (and keys-string
  					   (parse-equivalent-entries-string keys-string))))
  ;; 	    (when new-equivalent-keys
  