On Fri, Mar 14, 2003 at 01:45:56PM +1100, Damian Conway wrote:
: Oh, and I was wrong to originally write: C<multi *isa ...>

Sorry, you're not even wrong.  :-)

: Multimethods live in their own namespace. No * required.

Alternately, we require the C<*> in order to accurately document
their scope.  And I do think they live in C<*>.  Otherwise we need to
come up with yet another name for the global scope that happens to
contain multimethods.  An argument can also be made that we should
do that anyway on the grounds that we might someday have scoped
multi-methods of some kind or other.

I suppose can allow a C<sub *> in the same scope as C<multi *> for
the case that you want a global override of all the multimethods.
It just looks for the sub first.  If that sub then wants to redispatch
to the multimethods, it'd have to use some special multimethod syntax
that doesn't look like a sub invocation, such as the notional

    ($a,$b,$c) forwhich foo() 

we talked about in Sebastopol, however we end up spelling "forwhich".
It's really a kind of postpositional topicalizer for the following
predicate.  English doesn't really have any good ones of those.
If I were Japanese, I'd spell it "wa" or "ga" or "no".

Well, okay, I'd actually spell it "は" or "が" or "の" if I were
*really* Japanese.  :-)

Larry

Reply via email to