title: Double junction arguments swapping sides
body: <p>I'm confused about how double junctions are supposed to work.</p>
  
  <p>This makes some sense:</p>
  
  <pre><code>say all('a', 'b', 'c') ~ any('d', 'e');
  </code></pre>
  
  <p>gives</p>
  
  <pre><code>all(any(ad, ae), any(bd, be), any(cd, ce))
  </code></pre>
  
  <p>This doesn't make sense:</p>
  
  <pre><code>say any('a', 'b', 'c') ~ all('d', 'e');
  </code></pre>
  
  <p>gives</p>
  
  <pre><code>all(any(da, db, dc), any(ea, eb, ec))
  </code></pre>
  
  <p>It confuses me because the letter 'a' which I would expect to be on the left of the letter 'd' is now on the right.</p>