Solids

I’ve been playing around with the D language a lot lately; it has a lot of really cool features. It also has a few rough spots, but one I just encountered that’s bafflingly horrible. This will illustrate:
uint u = 0;
int s = -1;
assert (u > s); // assert will fail. somebody shoot somebody.
assert ("string".length > -1); // this one too, for the same reason.
Implicit type conversions cause more bugs than they’re worth, in general, but this is ridiculous.