Incorrect restrictions on using Numeric_std with Numeric_std_unsigned
In section 16.8.5.1 p331 of 1076-2019, it says:
The four packages are mutually incompatible, and only one shall be used in any given design unit. To facilitate changing from one package to the other, most of the subprograms declared in one package are also declared for corresponding parameters in the other.
It should be noted that there are issues with using NUMERIC_STD and NUMERIC_STD_UNSIGNED in the same design unit. Hence, I think the first sentence should be deleted:
The four packages are mutually incompatible, and only one shall be used in any given design unit.
To facilitate changing from one package to the other, most of the subprograms declared in one package are also declared for corresponding parameters in the other.
Alternately the first sentence could say:
The four packages NUMERIC_STD and NUMERIC_BIT are mutually incompatible, and only one shall be used in any given design unit.
However, while there are awkward situations that will happen if both NUMERIC_STD and NUMERIC_BIT are used in the same design, it can be worked around by using the selected name to the types signed and unsigned, such as ieee.numeric_std.unsigned. This same sort of thing happens if using NUMERIC_STD and std_logic_arith in the same design.