@dryak @aburka Programmers don't like to specify conversions manually, so that's what you get, although C makes it extra spicy by quietly ignoring loss of precision or sign (and compilers don't catch all such errors, it seems).
Speaking of conversions, I got some amazing error messages from some C++ code that had user-defined conversion operators for integers, pointers, and subscripting.