##
my sub helper (@prev, @rest) { ... }
##
##
sub outer(*@vals)
{
my multi sub helper (@prev) {
take @prev
}
my multi sub helper (@prev, $current, *@rest) {
$current.map: { helper [@prev, $_], *@rest }
}
gather { helper [], *@vals }
}