On Monday, 22 January 2024 at 01:14:06 UTC, Steven Schveighoffer
wrote:
The language should not allow unary unsigned anything.
This is unlikely to get fixed, just due to the nature of D's
philosophy when it comes to C compatibility.
It would also break a lot of existing code.
I think the bigger issue is implicit conversion from unsigned to
signed of the same bit size. In a future edition D could require
a larger signed type in order to implicitly convert from
unsigned. That would have caught the `long johnstone =` line.
Also signed should never convert to unsigned, though I don't
think that's happening here.