anchor.diff:  
   ;;; Conditions
   
  -(define-condition invalid-tar-checksum-error (archive-error)
  +(define-condition tar-error (archive-error)
  +  ()
  +  (:documentation "All errors specific to tar archives are of this type."))
  +
  +(define-condition invalid-tar-checksum-error (tar-error)
     ((provided :initarg :provided :reader provided)
      (computed :initarg :computed :reader computed))
     (:report (lambda (condition stream)
  
positive.code:                      (provided condition) (computed condition))))
    (:documentation "Signaled when the checksum in a tar header is invalid."))
  
  (define-condition unhandled-error (archive-error)
    ((typeflag :initarg :typeflag :reader typeflag))
    (:documentation "Signaled when a tar entry that ARCHIVE doesn't understand is encountered."))
  
  (define-condition unhandled-read-header-error (unhandled-error)
    ()
    (:report (lambda (condition stream)
               (let ((flag (typeflag condition)))
  
negative.code:                   (format stream "Can't understand typeflag: ~A" flag))))))
    (:documentation "Signaled when attempting to parse an unsupported tar entry."))
  
  (define-condition unhandled-extract-entry-error (tar-error)
    ()
    (:report (lambda (condition stream)
               (format stream "Don't know how to extract a type ~A tar entry yet"
                       (typeflag condition))))
    (:documentation "Signaled when attempting to extract an unsupported tar entry."))
  
  (define-condition unhandled-write-entry-error (tar-error)
    ()
    (:report (lambda (condition stream)
               (format stream "Don't know how to write a type ~A tar entry yet"
  