https://issues.dlang.org/show_bug.cgi?id=17141 --- Comment #4 from hsteoh at quickfur.ath.cx --- Looks like this is implemented in the hairball function typeMerge() in src/ddmd/dcast.d. I'll try to trace through and see if I can find an obvious problem, but I'm not sure if I'll be able to. --