I never understood that one either. There is always only one "solution" that will make your program compile, so why not just let the compiler figure it out?
I did not mention lifetimes, but the principle is the exact same: the lifetime annotations are an API promise, and so inferring them means that a change in the body of the function would change the promise, breaking other code.
I never understood that one either. There is always only one "solution" that will make your program compile, so why not just let the compiler figure it out?