Re: indirect-export in macro
Andre van Tonder 01 Dec 2005 16:56 UTC
> At Thu, 1 Dec 2005 11:45:19 -0500 (EST), Andre van Tonder wrote:
> > Since identifiers introduced by an expansion are distinct
> > (in the sense of bound-identifier=?) from library-toplevel
> > identifiers, would the following work?
> >
> > (library "let-div" "scheme://r6rs"
> > (define-syntax make-export
> > (syntax-rules ()
> > ((_)
> > (indirect-export (quotient+remainder)))))
> >
> > (make-export)
> > (define (quotient+remainder n d) ....)
>
> Yes, because the `make-export' expansion doesn't introduce a binding of
> `quotient+remainder'; it merely refers to a binding of
> `quotient+remainder' (as well as `indirect-export').
>
> In other words, the relevant predicate is not `bound-identifier=?' but
> `free-identifier=?'. [In PLT Scheme, it's `module-identifier=?', but I
> expect this predicate to be renamed `free-identifier=?' in the future.]
Ah thanks, but I just realized that the example does not conform to the
BNF specification of the library syntax in the document. So the
example should not even be possible. Is this correct?
Regards
Andre