While my last post was about removing entities, this one will be about
adding them.
Now, I don't know what Larry has up his sleeve in this respect, but as
I see it now, C<is> is too heavily overloaded. As it stands, it means
3 things:
(1) Attributing traits
(2) Inheriting base classes
(3) "Tying" variables
Depending on how traits are implemented, (1) and (3) might be
unified. But, even so, this is a case of Different Things Looking
Similar in similar context. Consider the following ambiguities:
(a) class Foo is Bar { } # Bar a trait or a base class?
(b) my $x is Baz; # Container class or trait?
This seems to be analogous to the bareword in Perl 5: is it a sub or a
string? It depends on previous declaration.
I don't think C<isa> is such a bad keyword, especially considering how
many people have mistakenly used it on this list.
Luke