On 24 Sep 2023, at 11:14, Marc Nieper-Wißkirchen <xxxxxx@gmail.com> wrote:
> In fact, the proposal of SRFI 245 deviates from the R6RS top-level program semantics (and from the semantics I originally proposed for mixing expressions and definitions) by not creating dummy definitions for expressions appearing before variable definitions but by merging them into the following variable definition. This, however, can easily make bindings "complex" in the language of "Fixing Letrec (reloaded)", thwarting important optimizations for many implementations.
>
> I strongly recommend returning to R6RS top-level program semantics
As far as I can tell, the point of Fixing Letrec (reloaded), as opposed to the original Fixing Letrec paper, is that bindings becoming ‘complex’ isn’t a problem unless they’re also recursive, so this does not change anything about how optimizable things are compared to making each pre-definition expression its own dummy variable.
Daphne