Описание тега hindley-milner
In type-theory, Hindley–Milner (HM) is a classical type type-inference method with parametric-polymorphism for the lambda calculus.
One property that makes the Hindley-Milner type theory important is its completeness and its ability to deduce the most general type of a given source without the need of any type annotations or other hints. HM is a fast algorithm that can compute a type almost in linear time with respect to the size of the source, which makes it of practical use for the types of large programs. HM is used for several functional programming languages. It was first implemented as part of the type system of the programming language ml. Since then, HM has been extended in various ways, most notably by constrained types as used in haskell, which it has a strong association with.
The original paper
A Theory of Type Polymorphism in Programming