Subject: Re: bug#67255: define-library does not support 'rename' directives

From: Timothy Sample <[email-masked]>
Date: Mon, 20 Nov 2023 09:53:10 -0600

Hi Maxim,

Maxim Cournoyer <[email-masked]> writes:

> Our R7RS define-library syntax, from (ice-9 r7rs-library) does not
> support renaming bindings to export, via 'rename' directives.

I appreciate your R7RS debugging effort.  Thanks!

> Our define-module syntax does not have such a feature (of renaming
> *exported* bindings), so this would seem to require new development on
> that side first.

I believe you’re mistaken.  At least, the manual says:

 -- syntax: export variable ...
     Add all VARIABLEs (which must be symbols or pairs of symbols) to
     the list of exported bindings of the current module.  If VARIABLE
     is a pair, its ‘car’ gives the name of the variable as seen by the
     current module and its ‘cdr’ specifies a name for the binding in
     the current module’s public interface.

Using pairs in Guile’s ‘export’ (or ‘#:export’ in ‘define-module’)
should be the same as ‘rename’ from R7RS.

HTH!

-- Tim