Currently there is no consistent assertion mechanism for the overlap. e.g. this is not allowed `eWiseMul(z,x,x...) ` while this is allowed `eWiseApply(z,x,x...) `