Given a method name, it returns a List of methods that are available with this name.

classA{methodx($a) {}};

classBisA{methodx() {}};

sayB.^can('x').elems; # OUTPUT: «2␤»

forB.^can('x') {

say.arity; # OUTPUT: «1, 2␤»

}

In this example, class B has two possible methods available with name x (though a normal method call would only invoke the one installed in B directly). The one in B has arity 1 (i.e. it expects one argument, the invocant (self)), and the one in A expects 2 arguments (self and $a).