anchor.diff:     (bits-per-sample :initform +bits-per-sample+
                       :initarg :bits-per-sample
                       :accessor bits-per-sample)
  +   (extension-size :initform +extension-size+
  +                   :initarg :extension-size
  +                   :accessor extension-size)
      (frames :initform '()
              :accessor frames
              :initarg :frames)))
  
positive.code:                 (make-instance 'read-wave
                                 :filename filename
                                 :io in
                                 :num-channels num-channels
                                 :sample-rate sample-rate
                                 :bytes-per-second bytes-per-second
                                 :bytes-per-sample bytes-per-sample
                                 :bits-per-sample bits-per-sample
                                 :frames frames)
                  (error "Invalid Wave file."))))
          ((eq direction :output)
  
negative.code:                  (sample-rate (read-uint in 4))
                   (bytes-per-second (read-uint in 4))
                   (bytes-per-sample (read-uint in 2))
                   (bits-per-sample (read-uint in 2))
                   (extension-size (if (= fmt-size 18)
                                       (read-uint in 2)
                                       0))
                   (data-id (read-tag in))
                   (data-size (read-uint in 4))
                   (value-range (expt 2 bits-per-sample))
  