Я смущен тем, как должны работать двойные соединения.
Это имеет смысл:
say all('a', 'b', 'c') ~ any('d', 'e');
дает
all(any(ad, ae), any(bd, be), any(cd, ce))
Это не имеет смысла:
say any('a', 'b', 'c') ~ all('d', 'e');
дает
all(any(da, db, dc), any(ea, eb, ec))
Это меня смущает, потому что письмо "а", которое я ожидаю быть слева от буквы "d", теперь находится справа.