anchor.diff:      (consume-char istr)
       (consume-whitespace istr)))
   
  -(define (read-list istr)
  +(define (read-list istr c)
     (consume-whitespace istr)
     (define ch (peek-char istr 0 false))
     (cond ((eq? #\) ch)
  
positive.code:               (not (eq? rt-constituent
                          (rt-char-type (peek-char istr 1 false)))))
           (consume-char istr)
           (read istr))
          (true
           (define h (read istr))
           (define t (read-list istr))
           (cons h t))))
  
  (define (read-maybe istr c)
  
negative.code:          (rplaca c (read-token istr)))
          ((= ct rt-lparen)
           (consume-char istr)
           (rplaca c (read-list istr c)))
          (true
           (error "don't know how to handle character ~D (~D)"
                  (char-code ch) ct))))
  