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