Hindley-Milner types