Jonathan Lang <[EMAIL PROTECTED]> writes: > Luke Palmer wrote: >> Renaming methods defeats the purpose of roles. Roles are like >> interfaces inside-out. They guarantee a set of methods -- an interface >> -- except they provide the implementation to (in terms of other, >> required methods). Renaming the method destroys the interface >> compatibility. > > Not so. A role is more than an inside-out interface; it guarantees a set > of methods either by calling it an error to not define a given method in a > class that C<does> the role or by defining the method itself. In the > latter case, renaming the method can be quite useful; even in the former > case, renaming or excluding methods from a role is useful if you want an > interface which is almost, but not quite, like the one that the role > provides.
And examples of doing all of that are given in the original Traits paper (and, for that matter, in the summary of Traits/Roles that I wrote up for the summary.) -- Beware the Perl 6 early morning joggers -- Allison Randal