anchor.diff:        (info-msg "Downloading ~A...~%" (url repository-address))
         (run-or-fail (format nil "wget -O ~A ~A" temporal-file (url repository-address)))
         (info-msg "Extracting...~%")
  -      (run-or-fail (format nil "mkdir ~A" (princ-to-string target-directory)))
  +      (run-or-fail (format nil "mkdir ~A" (princ-to-string install-directory)))
         (run-or-fail (format nil "tar zxf ~A --strip=1 -C ~A"
                              temporal-file
  -                           (princ-to-string target-directory))))
  +                           (princ-to-string install-directory))))
       t))
   
   (defmethod install-repository-from-address ((repository-address ssh-repository-address)
  -                                            repository target-directory)
  +                                            repository install-directory)
     (flet ((run-or-fail (&rest args)
              (multiple-value-bind (result code status)
                  (apply #'trivial-shell:shell-command args)
  
positive.code:         (install-library-version library-version (libraries-directory project)))))
  
  (defun update-repository (installed-library-version library-version)
    (update-repository-from-address
     (repository-address (repository installed-library-version))
     (repository installed-library-version)
     (install-directory installed-library-version)
     library-version))
  
  (defmethod update-repository-from-address (repository-address
                                             repository
                                             install-directory
                                             library-version)
    ;; repository-addresses are not updateable by default
    nil)
  
  (defmethod install-repository (repository directory)
    (install-repository-from-address (repository-address repository)
  
negative.code:   (print-unreadable-object (repository-address stream :type t :identity t)
      (format stream "~A" (address repository-address))))
  
  (defgeneric install-repository-from-address (repository-address repository install-directory)
    (:documentation "Cache the given repository from repository-address to install-directory.
                     Methods of this generic function should return T on success, or NIL on failure."))
  
  (defmethod install-repository-from-address ((repository-address directory-repository-address)
                                              repository install-directory)
    (multiple-value-bind (result code status)
        (ecase *address-cache-operation*
          (:symlink
           (let ((linkname (subseq (princ-to-string install-directory)
                                   0
                                   (1- (length (princ-to-string install-directory))))))
             (verbose-msg "Symlinking ~A to ~A~%"
                          (repository-directory repository-address)
                          linkname)
  