Junctions

my $color = 'red';
say 'warm' if $color eq 'red' | 'orange' | 'yellow';   # any
say 'yes' if $color eq any(<red green>);

my @scores = 70, 85, 92;
say 'all passed' if all(@scores) >= 60;
say 'one perfect' if one(@scores) == 92;
say 'none failed' if none(@scores) < 50;

my $j = 1 | 2 | 3;
say $j + 10;                    # any(11, 12, 13) (operations autothread)
say ($j > 2).so;                # True (collapse to Bool)
say so 3 == any(1, 2, 3);       # True
say (1 & 2).WHAT;               # (Junction)

sub check(Int $n) { $n > 5 }
say so check(any(3, 7));        # True: the sub is autothreaded over the junction

# Junctions are for boolean decisions, not for extracting values (no guaranteed order).
my @valid = <admin editor>;
say 'access' if 'editor' eq @valid.any;