I pushed out the perl6 code I've been working on to github and CPAN. I sub-divided it into four parts with a dependency tree like so:
Symbol::Scan | Object::Examine Augment::Util | | |--------------------/ | method-menu The goal here was to be able to go into the repl with: perl6 -Mmethod-menu ... and have an "m" method everywhere that dumps a verbose but human-readable list of all available methods. (I like ^methods a lot, but the output is often very peculiar and you have to know about the ":all" argument to really see all your options.) This set-up confines the evil step to a very small module, where all the functionality is available in other ways if you don't want to indulge in "augment". You could just use Object::Examine and get a role that provides a similar method (named "menu" instead of "m"). The Augment::Util and Symbol::Scan branch there is the workaround for the current problems with getting augment to propagate down an inheritance chain. I had a number of hassles with getting ready to ship, so there's evidently some bugs in my META6.json I need to fix (neither Ddt or Test::Meta6 were working for me, and I find I've got problems with secure github uploads *again*...).