Implementing scope in an interpreter using shift/reset for delimited continuations: https://blog.moertel.com/posts/2005-09-13-scope-herding-with-delimited-continuations.html
It's arguably overkill for the problem, but it's a well-argued introduction to shift and reset.
miniblog.
Related Posts
Trying to let my 3yo try as many different technology interfaces as possible.
Mouse: not too bad, especially after reducing sensitivity.
Keyboard: WASD is easy to lose track of in a sea of buttons.
Controller: requires both hands together, which is tricky. Arguably the left hand is more important too, hard for a right hander.
Today I learnt that Racket *intentionally* doesn't have a traditional REPL workflow. The authors were concerned about students not understanding the state between the current session and the code on disk.
(Arguably Jupyter has some of these features now.)
Doing another iteration on my diagnostics display. I'm reasonably happy with the bold highlighting within the error message.
I'm not sure about the colour on Warning and Error though. It gives the output some visual structure, but arguably the message itself is more important.

