Producing precise and helpful error messages for type inference is still a challenge for implementations of functional languages. Current approaches often lack precision in terms of locating the origins of type errors. Moreover, suggestions for how to fix type errors that are offered by some tools are also often vague...