> // these don't work - why? > // auto b = [new B, new C]; > // auto c = { return [1: new B,2: new C]; }; That seems to be just a matter of improving the compiler to make it find the common type. I don't think there's anything in the language stopping that from working.