perhaps I've missed something ... John Clements 20 Jan 2000 22:21 UTC

... but I fail to see the appeal of this mechanism. As far as I can
tell, a scheme implementation which conforms to this SRFI allows me
to write

(set! (car x) 5)

rather than

(set-car! x 5)

To my eyes, the only effect of this change is to confuse the
primitive which mutates bindings (set!) with a primitive that mutates
values (set-car!).  Although these two are radically different
beasts, beginning students often find it hard to understand the
difference, and a change of this sort will only make it harder to
teach them.

humbly yours,

john clements

ps. Since I am using a fixed-width font, I can see that the second
one is actually two characters shorter.

pps. let and letrec are both binding constructs. I don't see why we
need two different forms.  Why not just use 'let,' and if any of the
right-hand-sides happen to refer to the name they're bound to,
implicitly change the whole thing into a letrec?  I think this would
be much simpler and avoid lots of confusion.