This program does not print the same output when --enable-self-tail is used.
#lang racket/base
(define xs
(list (list 1 2 3 4 5)
(list 5 4 3 2 1)))
(let loop ([xs xs]
[f void])
(cond
[(null? xs) (f)]
[else
(define x (car xs))
(loop (cdr xs)
(λ ()
(displayln x)
(f)))]))
When the flag is not used (or when running the code in Racket) the output is:
When the flag is used the output is: