anchor.diff:  (defun encode-unit* (state code-point next-code-point write-func lookahead-func)
     (declare (type unicode-code-point code-point next-code-point)
   	   (type write-func-type write-func))
  -  (cond ((> code-point #xFFFF)		; TODO: use define-window-extended???
  -	 (multiple-value-bind (high low)
  -	     (encode-to-surrogate-pair code-point)
  -	   (declare (type (unsigned-byte 16) high low))
  -	   (encode-unit* state high low write-func lookahead-func)
  -	   (encode-unit* state low next-code-point write-func lookahead-func)))
  -	(t
  -	 (ecase (scsu-state-mode state)
  -	   (:single-byte-mode
  -	    (encode-unit*/single-byte-mode state code-point next-code-point write-func lookahead-func))
  -	   (:unicode-mode
  -	    (encode-unit*/unicode-mode state code-point next-code-point write-func lookahead-func))))))
  +  (ecase (scsu-state-mode state)
  +    (:single-byte-mode
  +     (encode-unit*/single-byte-mode state code-point next-code-point write-func lookahead-func))
  +    (:unicode-mode
  +     (encode-unit*/unicode-mode state code-point next-code-point write-func lookahead-func))))
   
   (defconstant +define-window-threshold+ 4)
   
  
positive.code: 	     (funcall write-func define-extended-tag)
  	     (funcall write-func hbyte)
  	     (funcall write-func lbyte))))))
  
  (defun encode-unit*/single-byte-mode (state code-point next-code-point write-func lookahead-func)
    (declare (type unicode-code-point code-point)
  
negative.code: 	((use-define-window-p state code-point next-code-point lookahead-func) ; define window
  	 (encode-define-window state code-point write-func +UD0+ +UDX+)
  	 (encode-unit* state code-point next-code-point write-func lookahead-func))
  	((> code-point #xFFFF)		; use surrogate pair
  	 (encode-SMP-as-surrogate-pair state code-point next-code-point write-func lookahead-func))
  	(t
  	 (when (<= #xE000 code-point #xF2FF)
  	   (funcall write-func +UQU+))
  