anchor.diff:  (defclass fat32-file-stream (sys.gray:fundamental-binary-input-stream
                                sys.gray:fundamental-binary-output-stream
                                file-stream)
  -  ((path :initarg :path :reader path) ;<
  -   (pathname :initarg :pathname :reader file-stream-pathname)
  +  ((pathname :initarg :pathname :reader file-stream-pathname)
      (host :initarg :host :reader host)
      (direction :initarg :direction :reader direction)
      ;; Read buffer.
  -   (read-buffer :initarg :read-buffer
  -                :accessor read-buffer)
  +   (buffer :initarg :buffer
  +           :accessor buffer)
      ;; File position where the buffer data starts.
  -   (read-buffer-position :initarg :read-buffer-position
  -                         :initform 0
  -                         :accessor read-buffer-position)
  +   (buffer-position :initarg :buffer-position
  +                    :initform 0
  +                    :accessor buffer-position)
      ;; Current offset into the buffer.
      (buffer-offset :initarg :buffer-offset
                     :accessor buffer-offset)
      ;; File size
  -   (read-buffer-size :initarg :read-buffer-size
  -                     :initform 0
  -                     :accessor read-buffer-size)
  -   ;; Write buffer.
  -   (write-buffer :initarg :write-buffer
  -                 :initform nil
  -                 :accessor write-buffer) ;<
  -   (write-buffer-position :initarg :write-buffer-position
  -                          :initform 0
  -                          :accessor write-buffer-position) ;<
  +   (buffer-size :initarg :buffer-size
  +                :initform 0
  +                :accessor buffer-size)
      (abort-action :initarg :abort-action :accessor abort-action)))
   
   (defclass fat32-file-character-stream (sys.gray:fundamental-character-input-stream
  
positive.code:                        (when (string= file-name (read-file-name file-data start))
                           (return-from find-file (values file-data cluster-n start)))))))
  
  ;; WIP
  (defmethod open-using-host ((host fat32-host) pathname
                              &key direction element-type if-exists if-does-not-exist external-format)
    (with-fat32-host-locked (host)
      (let ((buffer nil)
            (read-buffer-position 0)
            (buffer-offset 0)
            (read-buffer-size 0)
            (created-file nil)
            (abort-action nil))
        (multiple-value-bind (file-data cluster-n start) (find-file host pathname)
  
negative.code:                     :format-arguments (list pathname)))
             (when created-file
               (error "Cannot create ~A. ~S" pathname)))
            ;; TODO :supersede
            (:supersede
             (error ":supersede is not implemented")
             (setf abort-action :delete)
             (when nil
               (error 'simple-file-error
  