C<but> properties get attached to a value, and are available when the
value is passed to other functions/ etc. I would like to be able to
define a property of a value that is trapped in the lexical scope where
it is defined. The example that set me thinking down this path is
sub foo( $a, ?$b = rand but :is_default )
{
...
bar($a,$b);
}
sub bar( $a, ?$b = rand but :is_default )
{
warn "defaulting \$b = $b" if $b.is_default;
...
}
It would be unfortunate if the "is_default" property attached in &foo
triggers the warning in &bar. So I'd like to say somthing like
sub foo( $a, ?$b = 0 but lexically :is_default ) {...}
or
sub foo( $a, ?$b = 0 but locally :is_default ) {...}
to specify that I don't want the property to the propagated.