https://issues.dlang.org/show_bug.cgi?id=19101
--- Comment #2 from johanenge...@weka.io --- > Assuming you suggest mangling `module mod; extern(C++) class C {};` as > `mod::C` No, of course not. I suggest mangling `module mod; class C {};` as `mod.C`. Currently we mangle extern(D) types as if they are extern(C++) types for extern(C++) templated functions. In the original example, we currently mangle `foo!(a.A)(a.A)` as `foo!(A)(A)`. Hence the miscompilation / clash with mangling of `foo!(b.A)(b.A)`. --