anchor.diff:  	 (ret-string (first ret-list)))
       (declare (type list ret-list)
   	     (type string ret-string))	     
  -    (apply #'values (char ret-string 0) (rest ret-list)))) ; TODO: use a error handler..
  +    (apply #'values (char ret-string 0) (rest ret-list)))) ; TODO: use a error handler, if no char decoded.
   
   
   ;;; Encode
  
positive.code:   (declare (type (array (unsigned-byte 8) *) bytes)
  	   (type fixnum start1 end1 start2 end2)
  	   (type string string))
    ;; TODO: Don't reduce to last bytes..
    (with-reading-function (pick-byte src-current)
        (bytes start1 end1)
      (with-writing-function (put-char dst-current)
  	(string start2 end2 :element-type character)
        (loop while (< src-current end1) ; TODO: should return even after a completed control byte.
  	 do (with-scsu-error-handling
  		(state :src src-current :dst dst-current
  		       :return (lambda (dst src)
  
negative.code: ;;; Util
  (defmacro with-scsu-error-handling
      ((state &key src dst return) &body body)
    (alexandria:with-gensyms (%state %m %d-w %a-w-i %src %dst)
      `(let* ((,%state ,state)
  	    (,%m (slot-value ,%state 'mode))
  	    (,%d-w (slot-value ,%state 'dynamic-window))
  	    (,%a-w-i (slot-value ,%state 'active-window-index))
  	    (,%src ,src) (,%dst ,dst))	; Holds a restartable state.
         (restart-case
  	   (handler-bind ((scsu-error
  			   (lambda (c)
  