anchor.diff:  ;;; radix is 10 and that the readtable case of the current readtable
   ;;; is one of :upcase, :downcase, and :preserve.
   (defun read-upcase-downcase-preserve-decimal
  -    (input-stream eof-error-p eof-value recursive-p case-table)
  +    (input-stream eof-error-p eof-value recursive-p case-table case-function)
     (let* ((table *readtable*)
   	 (buffer *buffer*)
   	 (buffer-size (length buffer))
  
positive.code: 	   ((constituent non-terminating-macro-char)
  	      (when (= index buffer-size)
  		(increase-buffer))
  	      (setf (schar buffer index) (char-upcase char))
  	      (incf index)
  	      (go symbol-even-escape-no-package-marker))
  	   (single-escape
  
negative.code: 		  (error 'reader-error :stream input-stream)
  		  (progn (when (= index buffer-size)
  			   (increase-buffer))
  			 (setf (schar buffer index) (funcall case-function char))
  			 (incf index)
  			 (go symbol-odd-escape-two-package-markers))))
  	   (multiple-escape
  