Do we want something like 3 * ( 2 * (R.x | R.y) + (R.x | R.z))?
It won't be a DyadicMul, since I have used it as a container for a (scalar * BaseDyadic) (Analogous to Vector).
So the above would then be a Mul, causing further confusion on calling expand() on it (which would yield an Add, not a DyadicAdd)