anchor.diff:      `(defmethod update-digest ((state ,digest-name) (sequence vector) &key (start 0) (end (length sequence)))
          ,@(when (stringp maybe-doc-string)
                  `(,maybe-doc-string))
  -       (declare (type (simple-array (unsigned-byte 8) (*)) sequence))
  -       (declare (type index start end))
          ,(hold-me-back)
  +       (check-type sequence (simple-array (unsigned-byte 8) (*)))
  +       (check-type start index)
  +       (check-type end index)
          ,@(if (stringp maybe-doc-string)
  -             rest
  -             body))))
  +	     rest
  +	     body))))
   
   ;;; SPECS is either (DIGEST-NAME DIGEST-BYTES) or a list of the same.
   ;;; The latter spelling is for digests that are related, but have
  
positive.code: 				     &optional buffer buffer-start)
  	   ,@(when (stringp maybe-doc-string)
  	       `(,maybe-doc-string))
  	   (declare (type (or (simple-array (unsigned-byte 8) (*)) cl:null) buffer))
  	   (flet ((,inner-fun-name (state %buffer buffer-start)
  		    ,(hold-me-back)
  		    (macrolet ((finalize-registers (state regs)
  
negative.code: 			(error 'insufficient-buffer-space
  			       :buffer buffer :start buffer-start
  			       :length digest-size))))
  		 (cl:null
  		  (,inner-fun-name state
  				   (make-array digest-size
  					       :element-type '(unsigned-byte 8))
  