anchor.diff:  
   (defmethod slot-unbound (class (dist dist) (slot (eql 'release-index)))
     (declare (ignore class))
  -  (initialize-release-index dist))
  +  (setf (slot-value dist 'release-index)
  +        (make-hash-table :test 'equal)))
   
   
   ;;;
  
positive.code: 
  (defmethod slot-unbound (class (release release) (slot (eql 'provided-systems)))
    (declare (ignore class))
    (initialize-system-index (dist release))
    (if (slot-boundp release 'provided-systems)
        (provided-systems release)
        (setf (provided-systems release) nil)))
  
  (defmethod slot-unbound (class (dist dist) (slot (eql 'system-index)))
    (declare (ignore class))
    (initialize-system-index dist))
  
  (defmethod find-system-in-dist (system-name dist)
    (values (gethash system-name (system-index dist))))
  
  (defmethod preference ((system system))
    (if (probe-file (preference-file system))
  
negative.code: 
  
  (defmethod provided-releases ((dist dist))
    ;; FIXME: Should not unconditionally initialize
    (initialize-release-index dist)
    (loop for release being each hash-value of (release-index dist)
          collect release))
  
  (defmethod provided-systems ((dist dist))
    ;; FIXME: totally broken
    (loop for system being each hash-value of (system-index dist)
          collect system))
  
  
  (defmethod ensure-release-index-file ((dist dist))
    (let ((pathname (relative-to dist "releases.txt")))
  