&gt; So basically == is overloaded to also be an operator which means &quot;intersects&quot;.<p>Junctions seem way more complex than that, first there are 4 different junction contains (any, all, one and none), second they overload 12 comparison operators each and third the other operand doesn&#x27;t have to be a junction.<p>So e.g. any(@ar1) == any(@ar2) is an intersection but any(@ar1) == $val is a containment, and I&#x27;ve no idea what all(@ar1) &lt; any(@ar2) would be, I guess it would check that max(ar1) &lt; max(ar2)?