On Wednesday 20 August 2008 15:16:12 Aristotle Pagaltzis wrote: > It therefore seems necessary to me to specify dispatch such that > method calls in the Dog role invoke the original Dog role methods > where such methods exist. There also needs to be a way for a > class that assumes a role to explicitly declare that it wants > to override that decision. Thus, by default, when you say that > Mutant does both Dog and Tree, Dog’s methods do not silently > mutate their semantics. You can cause them to do so, but you > should have to ask for that.
How much of this does compile-time role method collision detection provide? If Dog and Tree both provide the bark method, the performing entity must disambiguate them. (I thought we had some syntax for "When invoked as a Dog, do this and when invoked as a Tree, do that" but I'm far too lazy to look that up at this moment.) -- c