anchor.diff:    (with-slots (sample-size) frame
   	      (setf (subframe-constant-value subframe) ;; FIXME: value is signed in original libFLAC
   		    (unsigned-to-signed
  -		     (funcall bit-reader sample-size)
  +		     (tbs:read-bits sample-size bit-reader)
   		     sample-size))))
   
   (defmethod subframe-body-reader (bit-reader (subframe subframe-verbatim) frame)
  
positive.code: 	       (<= type-num 63))
  	      (list 'subframe-lpc :order (1+ (- type-num 32)))) ; 100000-111111
  	     (t (error "Error subframe type"))))
  	   (wasted-bits (funcall bit-reader 1)))
  
        ;; FIXME: read wasted bits correctly
        (if (= wasted-bits 1) (error "Do not know what to do with wasted bits"))
        (let ((subframe (apply #'make-instance
  			     (append type-args (list :wasted-bps wasted-bits)))))
  	(subframe-body-reader bit-reader subframe frame)
  	subframe)))
  
  (defun frame-reader (stream streaminfo)
  
negative.code: 		(integer-to-array chunk buf sample-size :signed t)
  		(setf (subframe-verbatim-buffer subframe) buf))))
  
  (defun subframe-reader (stream frame)
    (if (/= (tbs:read-bit stream) 0) (error "Error reading subframe"))
      (let* ((type-num (tbs:read-bits 6 stream))
  	   (type-args
  	    (cond
  	     ((= type-num 0) '(subframe-constant))         ; 000000
  