On Fri, 2009-06-19 at 18:39 +1000, Ramana Kumar wrote:
> This section 
> http://www.r6rs.org/final/html/r6rs-lib/r6rs-lib-Z-H-1.html#node_toc_node_sec_12.7
> begins by saying you can introduce a fixed number of identifiers by
> simply naming them, but when you don't know how many identifiers you
> will need you can use generate-temporaries. Now when you introduce
> temporary identifiers by simply naming them, they pick up the context
> of the transformer. So it seems there's an argument that
> generate-temporaries should behave analogously... (which would break
> Aziz's original definition of unbound?). 

The analogous behavior would be for generate-temporaries identifiers to
be given the lexical context of where they are placed in a syntax
template (if/when they are).  But because of what generate-temporaries
identifiers are intended for, there's no reason for them to have any
lexical context; they can't refer to anything except introduced bindings
to themselves.

> What would be missing is a
> way to get at an empty context. 

I'd suggest: (datum->syntax #F <datum>) be made possible.  But the only
reason for an empty context is to do the free-identifier=? hack.  With a
primitive identifier-bound?, none of this is necessary.

> Is there any way to remove define and
> syntax from the context of empty-ctxt in (library (foo) (export
> empty-ctxt) (import (only (rnrs) define syntax)) (define empty-ctxt
> (syntax here))) ?

No.

-- 
: Derick
----------------------------------------------------------------

Reply via email to