Перекрестные связи с двойным соединением

Я смущен тем, как должны работать двойные соединения.

Это имеет смысл:

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", теперь находится справа.

Ответ 1

На самом деле это была ошибка. Это было исправлено с помощью https://github.com/rakudo/rakudo/commit/4ef8433aa2.

Спасибо за ваш вопрос/сообщение об ошибке! Следующий релиз компилятора Rakudo/следующий релиз Rakudo Star будет содержать это исправление.