hindley milner/algorithm w