(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.

Reply via email to