By the way, I'd really like to know what the vertical bar is here in front of "CORE":
> for (|CORE::) .grep({ .key eq .value.^name }) .map( *.value ) -> $class { It's not the "any" junction, is it? How would that make sense here? On 10/19/18, Joseph Brenner <doom...@gmail.com> wrote: > Okay, good enough... if I can't slip my changes in ahead of > everything then reinitializing everything viz ^compose sounds > workable. > > And so, my next question would be "Can I get a list of all > the built-in classes?" and I see brian d foy got there > a little over a year ago: > > https://stackoverflow.com/questions/44861432/is-there-a-way-to-get-a-list-of-all-known-types-in-a-perl-6-program > > The answer from smis suggest I need to be looking in the CORE:: > psuedo-package. > Starting from his code snippet, and hacking quite a bit I've got a start on > an > elephant gun that recomposes everything in CORE: > > for (|CORE::) .grep({ .key eq .value.^name }) .map( *.value ) -> $class { > my $class_name = $class.^name; > try { > say $class; > $class.^compose; > CATCH { default { say "Problem with $class_name"; } } > } > } > > > > On 10/19/18, Elizabeth Mattijsen <l...@dijkmat.nl> wrote: >> See also: >> https://stackoverflow.com/questions/52718499/how-to-correctly-augment-any >> >>> On 19 Oct 2018, at 03:52, Joseph Brenner <doom...@gmail.com> wrote: >>> >>> I've got another question about aug--yes, I know--ment. >>> >>> I've got a module ides_of_augment.pm6: >>> >>> use MONKEY-TYPING; >>> augment class Any { >>> method hiccup { >>> say "hic!"; >>> } >>> } >>> >>> I would've thought it could be used in the repl like this: >>> >>> perl6 -Mides_of_augment >>> >>>> (Any).hiccup >>> hic! >>>> my @a=< a b c d >; >>> [a b c d] >>>> @a.hiccup >>> No such method 'hiccup' for invocant of type 'Array'. Did you mean >>> 'hiccup'? >>> in block <unit> at <unknown file> line 1 >>> >>> As you can see, it kind-of augments the Any class, but evidently >>> does it too late to (completely) change an instance of Array. >>> >>> I tried a few things like "BEGIN augment" or "INIT augment" >>> without any luck. >>> >>> Any suggestions (besides "don't do it")? >> >