Jason Switzer wrote: > On Wed, Jun 2, 2010 at 5:10 AM, <pugs-comm...@feather.perl6.nl> wrote: > >> Author: masak >> Date: 2010-06-02 12:10:22 +0200 (Wed, 02 Jun 2010) >> New Revision: 31043 >> >> Modified: >> docs/Perl6/Spec/S32-setting-library/Containers.pod >> Log: >> [S32/Containers] Buf does Stringy, too >> >> - class Buf does Positional {...} >> + class Buf does Positional does Stringy {...} >> > > I never really thought about this, but now that I see it here, it made me > realize that how 'does' works seems verbose. I think we should be able to > specify a list instead of a bunch of 'does' statements. For example, the > above example should be written as > > class Buf does Positional, Stringy { ... }
This has been discussed on IRC before, and rejected. If I recall correctly, the two main reasons were: 1) if you change the precedence of 'does' to be looser than infix:<,>, expressions like my @a = 1, $a does True, 3, $b does False; start to DWYM. 2) trait selection (and thus application) is handled by multi dispatch, which relies on type annotation in the signature. This gets much harder if the signature of the trait has to account for more than one role being mixed in (and might not even be possible to get right with current signature semantics). Cheers, Moritz