: Problem:
: 
: You want to use delegation rather than inheritance to
: add some capabilities of one class or object to 
: another class or object.
: 
: Solution: 
: 
: Use a PROXY block:
: 
:     class MyClass {
: 
:     PROXY {
:         attr $left_front_wheel is Wheel;
:         attr $right_front_wheel is Wheel;
:     
:         when 'steer'    { $left_front_wheel, $right_front_wheel }
:         }
:         ...
:     }

I think this is falling into the "use overload <gobbledygook>" trap.
If something is part of the method interface, it ought to be declared
as a method.  It's the *implementation* syntax that should be screwed
around with to do delegation.  Something like:

    method steer is really(Wheel) is also(???) { .profit!!! }

I guess now we need C<???> and C<!!!> tokens now to go with C<...>.

:::---)))

Larry

Reply via email to