An Experimental New Type Inference Scheme for Rust
smallcultfollowing.com
smallcultfollowing.com
I also found this article really interesting: http://smallcultfollowing.com/babysteps/blog/2014/05/13/focu....
He and Andy Wingo (http://wingolog.org) both write very well on language issues though they may skew towards implementation concerns over design concerns.
Note that this algorithm is based on HM. You can't do plain old HM if you have subtyping; you have to do some algorithm based on it. This is just one of many possible algorithms.