I can introspect routines in Raku, for example the say
routine:
[5] > &say.WHAT
(Sub)
[6] > &say.^mro
((Sub) (Routine) (Block) (Code) (Any) (Mu))
but how can I introspect an operator such as +
(doc page)?
[7] > &+.WHAT
Use of uninitialized value of type Callable in numeric context
in block <unit> at <unknown file> line 1
in any <main> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
in any <entry> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
Use of uninitialized value of type Any in numeric context
in block <unit> at <unknown file> line 1
in any <main> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
in any <entry> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
[7] > &+.mro
No such method 'mro' for invocant of type 'Any'
in block <unit> at <unknown file> line 1
in any <main> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
in any <entry> at /home/toni/.rakubrew/versions/moar-blead/install/share/perl6/runtime/perl6.moarvm line 1
Since in Raku, operators are simply Sub
s after all and thus it's easy to declare new ones, I think I am doing something wrong but I cannot find out what precisely.
By trial and error this is what I found:
&infix:<+>.WHAT
This is what was printed:
(Sub+{is-pure}+{Precedence})