> The compiler could have prevented 'X' by not permitting "function == int" comparisons. That's 1/5.
0 is also a special case litteral for the null pointer, and function names are valid in pointer contexts, so I'm not even sure that "f == 0" is badly typed.