[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] Module-level BEGIN is not a BEGIN - please call it something else

On Sun, 24 Apr 2011, John Cowan wrote:

> Andre van Tonder scripsit:
>> So I guess my biggest problem with this overloading is that module
>> BEGIN does not just indicate a sequence, but also delimits a lexical
>> scope.  This makes it morally very different form all the other
>> BEGINs, which never delimit a new lexical scope.
> I don't understand why you think that.  Module BEGIN does not introduce
> a scope: the only thing that introduces a scope is MODULE.  The contents
> of BEGIN and INCLUDE and INCLUDE-CI are spliced into the module scope.

Well, the imported bindings are not valid outside the module-level BEGIN form. 
You cannot import DEFINE and then use it in the module outside a BEGIN form,
so BEGIN delimits a lexical area in the code inside of which imported bindings 
are valid and outside of which they are not.

You keep saying module-level BEGIN splices (and teh document also says so on p 
21, comapring it to topplevel BEGIN).  This is either wring or we are using a 
different sens of "splice".  haven't we already established that module-level 
BEGIN is the only BEGIN that /doesn't/ splice?  In other words, unless I am 
missing something, module-level BEGIN cannot be replaced by the inclded 

Scheme-reports mailing list