Re: define-library-alias Lassi Kortela 22 Sep 2020 16:05 UTC

>>   (define-library (scheme list)
>>     (extends (srfi 1))
>
> I think there is a fundamental difference between `(alias-for (srfi
> 1))` and `(extends (srfi 1))`. In the former case, we just have one
> library with two names. In particular, the library only has to be
> loaded (and expanded) once. In the latter case, we have to libraries
> (which just may happen to be equivalent) that have to be loaded and
> expanded separately. So it even makes sense to have both forms
> separately. The `extends` form would expand into an import declaration
> together with a corresponding export declaration. It makes sense to
> allow that the `extends` form is decorated with `only`, `prefix`,
> `rename`, and `except`.

There doesn't have to be a fundamental difference if

(define-library (foo) (alias-for (bar)))

is parsed magically as something different from an ordinary
`define-library`.

But I agree that `define-library-alias` is more elegant.

The symmetry with Chez Scheme `alias` (which you refer to in your
pre-SRFI <https://github.com/mnieper/srfi-212>) is nice.