The author wanted "a more powerful type of inference that can actually infer the whole type of a function by analyzing the body of the function", which Rust doesn't have by design.
I really prefer rust's approach. The function signature is the contract. It makes it much easier to debug compared to overly generic pure functional code or c++ templates where everything is auto and perfect forwarded.
The only time in rust where this isn't true is with async functions. That's because the compiler adds a ton of sugar to make it easier to write.
Which I personally think is a good decision, although I like the clean looking syntax of Haskell, it's often not obvious what the function takes (which is why most are type annotating their function)