November 2018

There's an obvious advantage to writing eachbrk as a macro instead of writing it inside the language core: it's easier to write macros in Lisp instead of write IR in a low-level language.

There's also a non-obvious advantage: a bad eachbrk written as a macro can be fixed at run-time. If eachbrk is written as IR and passed bad parameters (not enough parameters or parameters of the wrong type) the IR generates an error at read-time and stops.

There's power in fixing code at run-time instead of ending the code path early at read-time.