anchor.diff:            (find-release-in-dist (release system) dist))
       system))
   
  -(defmethod find-system-in-dist (system-name dist)
  +(defmethod find-system-in-dist (system-name (dist dist))
     (let* ((index (system-index dist))
            (system (gethash system-name index)))
       (or system
  -        (let ((line (cdb-lookup dist system-name "systems.cdb")))
  +        (let ((line (cdb-lookup dist system-name
  +                                (ensure-system-cdb-file dist))))
             (when line
               (setf (gethash system-name index)
                     (make-system-from-line line dist)))))))
  
positive.code:           (parse-integer (archive-size release)))
      release))
  
  (defmethod find-release-in-dist (release-name dist)
    (let* ((index (release-index dist))
           (release (gethash release-name index)))
      (or release
          (let ((line (cdb-lookup dist release-name "releases.cdb")))
            (when line
              (setf (gethash release-name index)
                    (make-release-from-line line dist)))))))
  
negative.code:    "Return the pathname for the system index file of DIST, fetching it
     from a remote source first if necessary."))
  
  (defgeneric ensure-system-cdb-file (dist)
    (:documentation
     "Return the pathname for the system cdb file of DIST, creating it
     if necessary."))
  
  (defgeneric ensure-release-index-file (dist)
    (:documentation
     "Return the pathname for the release index file of DIST, fetching
     it from a remote source first if necessary."))
  
  (defgeneric ensure-release-cdb-file (dist)
    (:documentation
     "Return the pathname for the release cdb file of DIST, creating it
     if necessary."))
  
  
  (defgeneric initialize-release-index (dist)
  