On Fri, 19 Dec 2003, Larry Wall wrote:

> On Fri, Dec 19, 2003 at 10:23:45AM -0800, Austin Hastings wrote:
> : Of course, when I do:
> :
> :   my $x = 0 but (true|false);
> :
> : then what happens?
>
> That's the problem with making them methods.  Any such operational
> definition is going to get you in trouble.  I think I like them better
> as enums, because then you can have junctions of them functioning as
> a kind of subtype.

Is that thought about just traits, or also about roles? Sometime earlier
Larry mentioned that roles could add multimethods, and my worry about that
is this:
        If you simultaneously have a multi method with a signature and
another without, given a particular call to this multimethod how do you
choose which of the two happens if the signature matches? Disallowing such
clashes seems problematic because it may mean that if the class writer
used types and signatures these get forced onto the user of the class.

--Abhijit

Reply via email to