The part of the code marked in green is the part which is about to be expanded, and the part marked in red is the part which was just expanded.
| First | Next |
(define lst-1 (cons 'b (cons 'c empty))) (define lst-2 (cons 'a (rest lst-1))) (set-rest! (rest lst-2) (cons 'd empty)) (set! lst-1 (cons 'a (cons 'd empty))) (set-rest! lst-2 (rest (rest lst-2))) (set-rest! lst-1 empty)