[PRL] disallowing shadowing

Felix S Klock II pnkfelix at ccs.neu.edu
Sun May 29 17:35:23 EDT 2005


On May 29, 2005, at 5:25 PM, David Herman wrote:

> As for the particular issue of C procedure names, if you mean that  
> they all go in a global namespace, that's not quite the same thing.  
> Mzscheme doesn't let you reuse top-level bindings, either, but the  
> module system allows you to rename them or not to import them at  
> all. That's different from shadowing.

But are you going to allow me to rename an imported binding to a name  
that already exists in some namespace?

Consider the following program text:

(module foo mzscheme
   (require (rename (lib "list.ss") quicksort mergesort))
   ...
)

With the restrictions that you are envisaging, is the system going to  
complain "you can't introduce the name mergesort; it is already  
provided by list.ss" ?

Or are you allowing for separate namespaces, and you just don't want  
new lexical contours (e.g. LET) to introduce implicit "sub"-namespaces ?

-Felix




More information about the PRL mailing list