Dear Marc,

As I got it, R5RS has no particular requirement here, while R7RS requires sequential evaluation order i.e. that

(let () (define a #t) (define b a) b) always evaluates to #t , and

(let () (define b a) (define a #t) b) always evaluates to #!unbound .


Comically enough, when I evaluate the above in Gambit,

in interpreted mode, I get #!unbound for both,

and in compiled mode, I get #t for both.

What's the rule and underlying though here?

Thanks,
Mikael