On Sunday 21 September 2008 03:53:31 Jonathan Worthington wrote: > > I said they're incompatible -- meant in terms of their semantics. I > > didn't say they don't work together in some cases with our current > > implementation. (They probably shouldn't.)
> They probably should. If they didn't, then how would multi-methods then > be possible? These dispatch first on the invocant, and then once that > provides the methods to consider, by the multi-dispatch algorithm within > those candidates. How is this different than standard multi-dispatch, except slower, less clear, and possibly less accurate? The entire point of multi-dispatch is to find the best fit candidate for *multiple* invocants. Predispatching on the first invocant, then refining after that seems wrong, and leads to the behavior Patrick describes, where adding a :multi :method in a subclass hides all of the :multis (:method or not) declared in a parent class. I agree that dispatch gets more confusing for invocant regions described in Perl 6, but I'm talking about Parrot here. -- c