anchor.diff:  
   (defmethod digest-sequence (state sequence &key (start 0) end
                               digest (digest-start 0))
  -  (declare (type (vector (unsigned-byte 8)) sequence) (type index start))
  -  #+cmu
  -  ;; respect the fill-pointer
  -  (let ((end (or end (length sequence))))
  -    (declare (type index end))
  -    (lisp::with-array-data ((data sequence) (real-start start) (real-end end))
  -      (declare (ignore real-end))
  -      (update-digest state data
  -                     :start real-start :end (+ real-start (- end start)))))
  -  #+sbcl
  -  ;; respect the fill-pointer
  -  (let ((end (or end (length sequence))))
  -    (sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end))
  -      (declare (ignore real-end))
  -      (update-digest state data
  -                     :start real-start :end (+ real-start (- end start)))))
  +  #+(or cmu sbcl)
  +  (locally
  +      (declare (type (vector (unsigned-byte 8)) sequence) (type index start))
  +    ;; respect the fill-pointer
  +    (let ((end (or end (length sequence))))
  +      (declare (type index end))
  +      (#+cmu lisp::with-array-data
  +       #+sbcl sb-kernel:with-array-data ((data sequence) (real-start start) (real-end end))
  +	(declare (ignore real-end))
  +	(update-digest state data
  +		       :start real-start :end (+ real-start (- end start))))))
     #-(or cmu sbcl)
     (let ((real-end (or end (length sequence))))
  -    (declare (type index real-end))
       (update-digest state sequence
                      :start start :end (or real-end (length sequence))))
     (produce-digest state :digest digest :digest-start digest-start))
  
positive.code: 			(error 'insufficient-buffer-space
  			       :buffer buffer :start buffer-start
  			       :length digest-size))))
  		 (t
  		  (,inner-fun-name state
  				   (make-array digest-size
  					       :element-type '(unsigned-byte 8))
  
negative.code: 				     (second (first specs))
  				     `(etypecase state
  					,@(reverse specs)))))
  	       (etypecase buffer
  		 ((simple-array (unsigned-byte 8) (*))
  		  ;; verify that the buffer is large enough
  		  (let ((buffer-start (or buffer-start 0)))
  		    (if (<= digest-size (- (length buffer) buffer-start))
  