如何重用签名?

How to reuse a signature?

是否可以为一个变量分配一个签名,然后在不同的 functions/methods 中重用它? 我找到了 my $sig = :($a, $b);,但我不知道如何将变量用作函数中的签名。

一种方式:

my $sig = :( $a, $b );

sub foo ( &function where { .signature ~~ $sig } ) {}

sub bar    ( $p, $q ) {}
sub qux    ( $waldo ) {}

foo &bar;

say "OK at line 10"; # OK at line 10

foo &qux;            # Constraint type check failed ... line 12".