[plt-scheme] Shadowing imported bindings

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Oct 24 13:27:12 EDT 2003

On Friday, October 24, 2003, at 01:12 PM, Bradd W. Szonye wrote:
> Was this a conscious design choice, or did it just fall out of the
> implementation? I did notice that Scheme-48 modules are slightly
> different; they forbid set! but permit shadowing.

There are many different choices on how you want identifiers to bind
in a scoping construct. I grew up on Algol60, which groups all those
local procedures recursively that are declared without a variable decl
in between and others are in a let* (shadowing) relationship. Others
grew up in different scoping mechanisms. All come with flaws and

> (That's not criticism of PLT Scheme -- just noting that another
> implementation made different choices.)

Criticism is perfectly fine. We put up PLT Scheme as if it were a
theorem and we invite careful and critical deconstruction (search
and destroy) so that we can improve it. Just a general remark.

-- Matthias

Posted on the users mailing list.