A low-priority enhancement request. This is wrong D2 code: import std.algorithm; void main() { auto r = map!{ a * a }([1, 2]); } DMD 2.056head gives four error messages: test.d(3): template argument expected following ! test.d(3): semicolon expected following auto declaration, not '{' test.d(3): found '}' when expecting ';' following statement test.d(4): found 'EOF' when expecting '}' following compound statement It contains a common mistake: map!{...}() instead of: map!q{...}() Given how common such mistake is in my code, I'd like the compiler to recognize it and show (if possible) a single and more readable error message.