http://feather.perl6.nl/syn/S12.html#Calling_sets_of_methods
I would like the spec to clarify what happens to the return values of
all these methods.
I'm fine with a simple answer, such as that they are not available, or
only the first or last set of return values is returned.
As a "use case", we may use of basically this feature in
CGI::Application in Perl5, as part the plugin system. Each plugin
location is like a method name, and as we get to each point in the code,
we look up through the inheritance tree, executing methods at each location.
In this case, I think we ignore the return values.
Mark
So, Audrey implemented the beginning of this functionality:
$obj.*$meth, for single inheritance.
As part that she implemented return values. Her design was to compose
the final return value as an unconcatenated list of each method's return
value.
Example:
If C.foo returns (1,2,3) and D.foo returns(4,5,6)
you get
$obj.*$meth.[0][0] == 1
$obj.*$meth.[1][0] == 4
That works OK for me. If there's a downside, if there is a downside,
it's that it could be hard to track down where a mysterious return value
came from, since the return value object doesn't tell you exactly which
methods were called, and in which order.
Mark