Да, соображения про лямбды и инициализацию понятны. Проблема как раз с инструментом)
Простой тест пробовал, например, такое
(define (rawr)
(print "hello"))
(define (loop)
(rawr)
(process-sleep 1)
(loop))
При запуске (loop) из репла работает, как и ожидается, но стоит переключиться на буфер с кодом и подождать пару секунд - печатать "hello" оно перестаёт. Переключаюсь обратно в репл, жму C-c C-q (
geiser-repl-exit
) - снова начинает печатать.
Странный он, этот гейзер. У меня вообще ощущение, что он написан с расчётом на программы, которые моментально (ну или почти моментально) отрабатывают и выходят, а на долгоживущие программы он не рассчитан