An implementation of Damas-Hindley-Milner's Algorithm W for infering types