Type inference for ML-like languages. A port of "Algorithm W Step by Step" by Martin Grabmüller.