If a frame mutates a global and then signals, taking a retry re-runs the mutation. Control resumes at the restart-case and runs forward; nothing is undone. Common Lisp has the same property and offers no help either, so this is written down rather than fixed. The discipline is that the author chooses where the retry boundary is: a restart-case above the mutations re-runs them, one below re-runs only what follows. Put the restart before anything mutates, make the retried section idempotent, or snapshot what will be re-applied. It matters more here than in most Lisps because the intended use is a game loop, and a bad index signalling BoundsError rather than ending the process made abandoning and retrying a frame an ordinary thing to do. conditions.org and web/index.html already carried the mechanical half as a one-line gotcha; those are rewritten in place rather than gaining a second bullet beside them. spec-conditions.md takes it in section 5, which already enumerates what a transfer does and does not do. No numbered case changed meaning.
Description
Languages
OCaml
67.2%
Emacs Lisp
15.2%
C
10.4%
HTML
2.9%
Standard ML
2.8%
Other
1.5%