[racket-dev] the stepper and changes to the expansion of letrec
At Sat, 9 Jul 2011 11:43:14 -0700, John Clements wrote:
> The expansion of letrec has changed substantially; for instance, a letrec such
> as
>
> (letrec ([a 3] [b (lambda () (b))] [c 4]) (+ a (b) c))
>
> ... now expands into three nested forms. This is going to require some fairly
> interesting changes to the stepper. First, though, some questions:
>
> 1) are the definitions ever re-ordered in the process of splitting? It looks
> like the answer is 'no', but it's hard to guess.
> 2) are unused definitions ever removed? Again, it looks like the answer is
> 'no', but I can't be sure.
No in both cases, but I think it's best to have the teaching languages
use the old expansion instead of the new internal-definition expansion.
I'll push that change.