anchor.diff:                         :do (setf (row-major-aref data i) (ieee-754-to-float-32 (peek32 buffer j))))
                        (values data (1- +type-array+))))
                     ((#.+type-string+)
  -                   
                      (let* ((size (peek16 buffer 4))
                             (data (babel:octets-to-string buffer
                                                           :start 6 :end (+ 6 size)
  
positive.code: 
  (defmethod build-record-table ((file file))
    (with-slots (stream header record-table) file
      (file-position stream +block-size+)
      (let ((buffer (make-block))
            (table (make-hash-table))
            (free-list 0))
        (loop
          :for position :from +block-size+ :by +block-size+
          :do (if (= +block-size+ (read-sequence buffer stream))
                  (let ((record-number (peek24 buffer 0)))
                    (if (or (zerop record-number)
                            (not (valid-type-p (peek8 buffer 3)))) 
  
negative.code:                       (setf (gethash record-number table) position)))
                  ;; end of file
                  (loop-finish))
          :finally (return (setf header (make-header :free-list free-list
                                                     :record-table position)
                                 record-table table))))))
  
  
  (defmethod read-record-table ((file file))
  