1 (define (extract-symbols exp)
2 (define (process x out cont)
7 ;; used to have a bug here whereby `x' was
8 ;; modified in the self-tail-recursion to (process
9 ;; (cdr x) ...), because we didn't allocate fresh
10 ;; externals when doing self-tail-recursion.
14 (cont (cons car-x cdr-x)
17 (cont x (cons x out)))
20 (process exp '() (lambda (x out) out)))
22 (extract-symbols '(a b . c))