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 <[email protected]> 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 <[email protected]> wrote:
>> See also:
>> https://stackoverflow.com/questions/52718499/how-to-correctly-augment-any
>>
>>> On 19 Oct 2018, at 03:52, Joseph Brenner <[email protected]> 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")?
>>
>