anchor.diff:  
   ;;; writing entries in various guises
   (defmethod write-entry-to-archive :before ((archive tar-archive)
  -                                           (archive-entry tar-entry)
  +                                           (entry tar-entry)
                                              &key stream)
     (declare (ignore stream))
  -  (unless (member (typeflag archive-entry) (list +tar-regular-file+
  -                                                 +tar-directory-file+)
  +  (unless (member (typeflag entry) (list +tar-regular-file+
  +                                         +tar-directory-file+)
                     :test #'=)
  -    (error "Don't know how to write entries of type ~A yet"
  -           (typeflag archive-entry))))
  +    (error 'unhandled-write-entry-error :typeflag (typeflag entry))))
   
   (defmethod write-entry-to-archive ((archive archive) (entry directory-tar-entry)
                                      &key (stream t))
  
positive.code:              (let ((global-header (read-data-block archive (size entry)
                                                     #'round-up-to-tar-block)))
                 (read-entry-from-archive archive)))
              ((= (typeflag entry) +gnutar-sparse+)
               (error "Don't understand GNU tar sparse entry"))
              (t
               (error "Can't understand typeflag: ~A" (typeflag entry))))))))
              
  ;;; FIXME: must add permissions handling, mtime, etc.  maybe those should
  ;;; be specified by flags or somesuch?
  
negative.code:             ((or (= (typeflag entry) +tar-regular-file+)
                   (= (typeflag entry) +tar-directory-file+))
               entry)
              ((= (typeflag entry) +posix-global-header+)
               ;; FIXME: We should make the information from this
               ;; available to the user.  At the moment, however, most
  