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

Reply via email to