anchor.diff:               :subchunk subchunk))))
   
   (defun read-subchunks (reader)
  +  "Reads all subchunks of wav file begining with
  +   format subchunk and ending with data."
     (let (chunks)
       (tagbody
        read-subchunks-loop
  
positive.code:       fact)))
  
  (defun read-format-subchunk (reader size)
    (let ((subchunk (make-format-subchunk)))
      (setf (format-audio-format subchunk)
            (read-bits 16 reader)
  
negative.code:     chunks))
  
  (defun read-wav-header (stream)
    "Reads wav file header from STREAM. Returns two values:
     list of subchunks and size of audio data to read.
     Stream position is set to begining of audio data."
    (let* ((reader (read-chunk-header
                    (make-reader :stream stream)))
           (header-subchunks (read-subchunks reader))
  