anchor.diff:    (print-unreadable-object (object stream :type t :identity t)
       (format stream "~S" (file-truename object))))
   
  -(defclass local-stream (file-stream sys.gray:fundamental-stream sys.gray:unread-char-mixin)
  +(defclass local-stream (sys.gray:fundamental-stream file-stream)
     ((%file :initarg :file :reader local-stream-file)
      (%pathname :initarg :pathname :reader file-stream-pathname)
      (%position :initarg :position :accessor stream-position)
      (%direction :initarg :direction :reader direction)
      (%superseded-file :initarg :superseded-file :reader superseded-file))
     (:default-initargs :superseded-file nil))
  +
  +(defclass local-character-stream (local-stream
  +                                  sys.gray:fundamental-character-input-stream
  +                                  sys.gray:fundamental-character-output-stream
  +                                  sys.gray:unread-char-mixin)
  +  ())
  +
  +(defclass local-binary-stream (local-stream
  +                               sys.gray:fundamental-binary-input-stream
  +                               sys.gray:fundamental-binary-output-stream)
  +  ())
  +
  +(defclass translating-stream (file-stream sys.gray:fundamental-character-stream)
  +  ((%underlying-stream :initarg :underlying-stream :reader translating-underlying-stream)))
  +
  +(defclass translating-input-stream (translating-stream
  +                                    sys.gray:fundamental-character-input-stream
  +                                    sys.gray:unread-char-mixin)
  +  ())
  +
  +(defclass translating-output-stream (translating-stream
  +                                     sys.gray:fundamental-character-output-stream)
  +  ())
   
   (defmacro with-host-locked ((host) &body body)
     `(mezzano.supervisor:with-mutex ((local-host-lock ,host))
  
positive.code:                           :defaults truename))
            (t
             truename))))
  
negative.code:                                      :storage (make-array 0
                                                            :element-type element-type
                                                            :adjustable t
                                                            :fill-pointer 0))))
            ((:overwrite :append)
             ???)
            ((nil) (return-from open-using-host nil))))
        (cond ((and (not (eql direction :probe))
                    (not (equal (upgraded-array-element-type element-type)
                                (array-element-type (file-storage file)))))
               (make-translating-stream
                (make-instance (cond ((subtypep (array-element-type (file-storage file)) 'character)
                                     'local-character-stream)
                                    ((subtypep (array-element-type (file-storage file)) 'integer)
                                     'local-binary-stream)
                                    (t
                                     'local-stream))
                               :file file
                               :pathname pathname
                               :position (if (and (member direction '(:output :io))
                                                  (eql if-exists :append))
                                             (length (file-storage file))
                                             0)
                               :direction direction
                               :superseded-file superseded-file)
                direction
                element-type
                external-format))
              (t
               (make-instance (cond ((subtypep element-type 'character)
                                     'local-character-stream)
                                    ((subtypep element-type 'integer)
                                     'local-binary-stream)
                                    (t
                                     'local-stream))
                              :file file
                              :pathname pathname
                              :position (if (and (member direction '(:output :io))
                                                 (eql if-exists :append))
                                            (length (file-storage file))
                                            0)
                              :direction direction
                              :superseded-file superseded-file))))))
  
  (defmethod probe-using-host ((host local-file-host) pathname)
    (when (not (typep (pathname-directory pathname) '(cons (eql :absolute))))
  