I want to implement Hindley-Milner type inference but as a non-academic person that doesn't know type theory at all, I'm getting a bit overwhelmed by all the different algorithms and their properties, the dependencies of papers on papers and all the new concepts I have to learn.
I'm looking for an algorithm or a few algorithms that stand out in terms of the error messages it can generate (Something that Algorithm W and Algorithm M are supposedly not very good at).
Can anyone point me to any helpful resources on this, or explain to me what I should be looking for in an algorithm to find out if it will be good for generating error messages, or both?
Note: It would be nice if it can support higher kinded types, but it's not an immediate requirement.