I'd rather you base this on the opcode than the type. If genExpr returns something which is badly typed, we propagate this error.