[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: indirect-export in macro
> 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?