Reply to bearophile, > Andrei Alexandrescu: > >> I guess this would work better: >> CommonType!(Tx, Ty) lazyOr(Tx, Ty)(Tx x, lazy Ty y) { ... } > What's the improvement? class C {} class D1 : C {} class D2 : C {} D1 d1; D2 d2; auto r = lazyOr(d1, d2); > (And I think that code of mine gives a better error message.) > Bye, > bearophile