... Which means this may cause a bunch of nuisance errors.
It's a trade-off between nuisance in some cases (the Phobos ones can be solved with val = abs(val), or with static if), and possibly catching bugs in other cases.
We can compare this with negation of a bool and subtracting a bool:
``` bool b; auto x = 1 - b; // allowed auto y = -b; // not allowed ```