> In order to determine the first return type, it needs to find > out what overloaded 'bar' to call, which requires determining > the first return type. > I didn't think of overloaded functions. If we consider only direct recursion, it should still work?