I've spent a fair amount of time lately tweaking the C# compiler's error messages.  At some point I begin to wonder, how clearly do we have to spell things out for end users?  There are at least 2 dozen different error messages that could be summarized with just “not an l-value”.  Now granted, there is an extreme.  Some compilers and tools do little more than tell you an error happened, and sometimes where it happened.  I believe an error message should indicate what is wrong, and if possible how to fix it.  So my question for anybody who reads this an actually uses C#, do you feel like the compiler error messages are good or bad?  If you can give me specific examples maybe I can get a few things fixed before we ship ;)