Hindley–Milner type system

E230805

The Hindley–Milner type system is a classical polymorphic type system used in many functional programming languages, notable for enabling type inference without explicit type annotations.

All labels observed (2)

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf polymorphic type system
static type system
type system
alsoKnownAs Hindley–Milner type system
surface form: Damas–Milner type system

HM type system
appliedIn functional programming languages
statically typed languages with type inference
basedOn lambda calculus
coreConcept generalization at let-bindings
monomorphic type variables in local bindings without let
most general unifier
unification-based type inference
enables type inference without explicit type annotations
field programming languages
type theory
goal assign principal types to all typable expressions
hasAlgorithm Algorithm J
Algorithm W
hasFeature completeness for its language fragment
let-polymorphism
parametric polymorphism
principal types
rank-1 polymorphism
soundness
type inference
hasLimitation does not support GADTs natively
does not support full higher-rank polymorphism
does not support type classes natively
influenced type system of Elm
type system of F#
type system of Haskell
type system of PureScript
type system of ReasonML
namedAfter J. Roger Hindley
Robin Milner
property decidable type inference
principal type property
relatedTo System F
simply typed lambda calculus
restrictionOf System F
supports polymorphic functions
type generalization
type instantiation
typicalComplexity polynomial time type inference
usedIn Haskell core type system
ML
surface form: ML programming language family

Miranda programming language
OCaml
Standard ML
early versions of Haskell

How these facts were elicited

Referenced by (3)

Full triples — surface form annotated when it differs from this entity's canonical label.

Robin Milner knownFor Hindley–Milner type system
Standard ML hasFeature Hindley–Milner type system
Hindley–Milner type system alsoKnownAs Hindley–Milner type system
this entity surface form: Damas–Milner type system