anchor.diff:  			      ,@(if (not writer-supplied-p) `((function ,writer)))))
   	     ,@body))))))
   
  +(defun scsu-trace-output (format-control &rest format-arguments)
  +  (when *scsu-state-trace*
  +    (apply #'format *trace-output* format-control format-arguments)))
  +
   
   ;;; Decoder
   (deftype read-func-type ()
  
positive.code:        ;; (assert (or (<= #x00 byte #xDF) (<= #xF3 byte #xFF)))
         (let ((next (funcall read-func)))
  	 (declare (type (unsigned-byte 8) next))
  	 (when *scsu-state-trace*
  	   (format *trace-output* "[Unicode char ~X,~X]" byte next))
  	 (logior (ash byte 8) next))))))
  
  (defun decode-unit* (state read-func)
  
negative.code:     (cond ((<= 0 byte #x1F)		; Tag bytes.
  	   (ecase byte
  	     ((#x0 #x9 #xA #xD)		; pass
  	      (scsu-trace-output "[single-byte ASCII ~X]" byte)
  	      byte)
  	     ((#.+SQ0+ #.+SQ1+ #.+SQ2+ #.+SQ3+ #.+SQ4+ #.+SQ5+ #.+SQ6+ #.+SQ7+) ; Quote from Window
  	      (scsu-trace-output "SQ~D " (find-SQn-window byte))
  	      (let ((window (find-SQn-window byte))
  		    (next-byte (funcall read-func)))
  		(declare (type window-index window)
  			 (type (unsigned-byte 8) next-byte))
  		(scsu-state-update-timestamp state window)
  		(cond ((<= #x0 next-byte #x7f)
  		       (scsu-trace-output "[single quote static ~X]" next-byte)
  		       (+ (lookup-static-window window) next-byte))
  		      (t
  		       (scsu-trace-output "[single quote dynamic ~X]" next-byte)
  		       (+ (lookup-dynamic-window state window)
  			  (logand next-byte #x7f))))))
  	     (#.+SDX+			; Define Extended
  	      (scsu-trace-output "SDX ")
  	      (decode-define-window-extended state read-func)
  	      (decode-unit* state read-func))
  	     (#xC
  