Just curious, why doesn't D, and why don't more statically typed languages in general, support overload by return type? I haven't exactly thought through all the pros and cons, but at first glance it seems like an incredibly useful thing. What's the catch that I'm missing?