id	summary	reporter	owner	description	type	status	priority	milestone	component	version	severity	resolution	keywords	cc	lang	patch	platform
1416	Unreasonably painful to add a method to all *Array PMCs	japhb		"Adding a method that works for all *Array PMCs (in either PIR or NQP) should be really easy, but it isn't.  If all *Array PMCs had a common ancestor (Array, say), you could do this:

{{{
module Array {
    method reverse () {
        my @reversed;
        for self { @reversed.unshift($_); }
        @reversed;
    }
}
}}}

Unfortunately, there is no such common ancestor.  Likewise, they 
share no common role, so that's not an in either.

One could copy and paste the above block for each *Array module, but that's just nuts.  Talk about a DRY violation.

It's possible one might create one method code object, then iterate over all the known *Array types and use add_method to add that code to them as a method, but this will fail if the list of *Array types changes, which it reasonably might.  Plus it's just ugly for what should be a simple task.
"	RFC	new	normal		core	2.0.0	medium		Array method				
