A Type Inferencer for ML in 200 Lines of Scala See: https://github.com/igstan/linguae/tree/master/lingua-006-hm-inference-scala