On Fri, 2005-11-04 at 13:15 -0500, Austin Frank wrote:

> If roles are interfaces, do we want any class that provides an interface 
> consistent with a role to implicitly do the role?  That is, if a class 
> fulfills all of the interface requirements of a role without actually 
> saying it does the role, does it do the role anyway?

No.

role Dog
{
        method bark { ... }
}

class Tree
{
        has $.bark;
}

A role is a named collection of behavior and state, not just a list of
method and property names.  The context is highly important.  It's the
difference between homonyms and allomorphs.

-- c

Reply via email to