anchor.diff:  (defgeneric ensure-directories-exist-using-host (host pathname &key verbose))
   
   (defun ensure-directories-exist (pathspec &rest keys &key verbose &allow-other-keys)
  -  (values pathspec (apply 'ensure-directories-exist-using-host (pathname-host pathspec) (merge-pathnames pathspec) keys)))
  +  (let ((path (translate-logical-pathname (merge-pathnames pathspec))))
  +    (values pathspec
  +            (apply 'ensure-directories-exist-using-host
  +                   (pathname-host path)
  +                   path
  +                   keys))))
   
   (defgeneric rename-file-using-host (host source dest))
   
   (defun rename-file (filespec new-name)
  -  (let* ((source (merge-pathnames filespec))
  -         (dest (merge-pathnames new-name source)))
  +  (let* ((source (translate-logical-pathname (merge-pathnames filespec)))
  +         (dest (translate-logical-pathname (merge-pathnames new-name source))))
       (assert (eql (pathname-host source) (pathname-host dest))
               (filespec new-name) "Cannot rename across hosts yet.")
       (rename-file-using-host (pathname-host source) source dest)
  
positive.code: (defgeneric host-name (host))
  (defgeneric host-default-device (host))
  
  (defvar *host-alist* '())
  
  (define-condition unknown-host (error)
  
negative.code:   (:use #:cl)
    (:export #:find-host
             #:list-all-hosts
             #:logical-host
             #:unknown-host
             #:host-name
             #:host-default-device
             #:host-pathname-class
             #:parse-namestring-using-host
             #:unparse-pathname
             #:unparse-pathname-file
  