case LONE_ARROW_ANY: case LONE_ARROW_SOME: case LONE_ARROW_ONE: case LONE_ARROW_LONE:
case ISSEQ_ARROW_LONE:
case ARROW:
s=cset(a); return s.product(cset(b));
case JOIN:
a=a.deNOP(); s=cset(a); s2=cset(b);
if (a instanceof Sig && ((Sig)a).isOne!=null && s2 instanceof BinaryExpression) {
BinaryExpression bin = (BinaryExpression)s2;
if (bin.op()==ExprOperator.PRODUCT && bin.left()==s) return bin.right();
}
return s.join(s2);