|Subject:||The X and Z metaops don't respect Scalar containers as part of the 'single argument rule'|
S07  claims: "The single argument rule does respect Scalar containers." "The single argument rule is implemented consistently throughout the language." It lists 'for', '.push', 'infix:<,>' and 'postcircumfix:<[ ]>' as examples of things that consistently follow the rule. Since it does not explicitly mention the X and Z meta-operators as exceptions, it stands to reason that they too should follow this rule. But in current Rakudo they only follow it partially: They treat each operand as a single argument whose elements to act on, but they do *not* respect Scalar-containerization of said arguments. Example: say $(1, 2) X <a b c> Output: ((1 a) (1 b) (1 c) (2 a) (2 b) (2 c)) Expected output: (((1 2) a) ((1 2) b) ((1 2) c)) TL;DR: This is either a Rakudo bug, or a case where S07 needs more clarification.