anchor.diff:  
     (flush))
   
  -(define (formout stream control . args)
  -  (formout-list stream control args))
  +(define (formout writer control . args)
  +  (formout-list writer control args))
   
   (define (format-list control args)
     (define buf (make-string-buffer))
  -  (formout-list (string-buffer-stream buf) control args)
  +  (formout-list (string-buffer-writer buf) control args)
     (string-buffer-to-string buf))
   
   (define (format control . args)
  
positive.code:                        (set! write-from (1- write-from)))
  
                        ((eq? ch #\%)
                         (print-newline stream))
  
                        ((or (eq? ch #\A) (eq? ch #\a))
                         (with-value (*print-readably* false)
                           (print stream (car args)))
                         (set! args (cdr args)))
  
                        ((or (eq? ch #\S) (eq? ch #\s))
                         (with-value (*print-readably* true)
                           (print stream (car args)))
                         (set! args (cdr args)))
  
                        ((or (eq? ch #\D) (eq? ch #\d))
                         (with-value (*print-radix* 10)
                           (print stream (car args)))
                         (set! args (cdr args)))
  
                        ((or (eq? ch #\X) (eq? ch #\x))
                         (with-value (*print-radix* 16)
                           (print stream (car args)))
                         (set! args (cdr args)))
  
                        ((or (eq? ch #\C) (eq? ch #\c))
                         (print-char stream (car args))
                         (set! args (cdr args)))
  
                        (true
  
negative.code:     (define (unquote name)
        (begin
          (define str (character-string (unquote ch)))
          (lambda (writer) (write-string writer str))))))
  
  (define-char-printer print-newline #\Newline)
  (define-char-printer print-double-quote #\")
  
  (define (print-number writer num)
    (if (= num 0)
        (write-string writer "0")
        (begin
          (unless (and (<= 2 *print-radix*)
                       (<= *print-radix* (string-length print-number-digits)))
  