my &helper = -> @prev, @rest { ... } #### 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 } }