MatMul uses Add when one element is ImmutableMat
_setitem checks for Basic, not Expr