[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] SRFI-34, SRFI-60 and core bindings
From: |
Ludovic Courtès |
Subject: |
Re: [PATCH] SRFI-34, SRFI-60 and core bindings |
Date: |
Mon, 24 Oct 2005 10:10:32 +0200 |
User-agent: |
Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux) |
Hi,
Kevin Ryde <address@hidden> writes:
> Yes, I'm talking about the module user too, the module user loses some
> core bindings.
>
>> This is exactly the behavior users may expect.
>
> If you don't know about the clashes/replacements then you're likely to
> be unpleasantly surprised to see core stuff suddenly move under your
> feet. But a way to acknowledge that in the use-modules might be nice.
My opinion about this is that it is a matter of documentation. That is,
you don't want core bindings to get overloaded in unexpected ways.
However, in some cases, you do know that a given module redefines
various core bindings, and you do know that you *want* this. The manual
clearly documents the binding conflicts for the SRFI modules we're
talking about. I'd say it is the user's responsibility to make sure
they know what they're doing. ;-)
As I tried to explain in the doc, `#:replace' is really a way for the
module developer to give a *hint* to the module user. By default, this
hint will be obeyed by the module user. However, the user still has the
opportunity to not take this hint into account by choosing a different
chain of duplicate binding handlers.
Now, if that hint is not provided by the modules in question and you
want to tell the module system that you *know* what you're doing (to get
rid of the warning message), then there is no clean way to do it. Of
course, you can choose the `last', `first', or whatever duplicate
binding handler that makes the warning message vanish (this is what
people sometimes do currently). But that does not qualify as a clean
solution.
Thanks,
Ludovic.