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 (7)

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf polymorphic type system
static type system
type system
alsoKnownAs 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 programming language family
linked to: ML

Miranda programming language
OCaml
Standard ML
early versions of Haskell

How these facts were elicited

Referenced by (19)

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 Damas–Milner type system
linked to: Hindley–Milner type system
PureScript hasTypeSystem Hindley–Milner type system
System F influenced Hindley–Milner type system
subject linked to: system F
Effective Modern C++ hasPart Item 5: Prefer auto to explicit type declarations
linked to: Hindley–Milner type system
Moscow ML typeSystem Hindley–Milner type inference
linked to: Hindley–Milner type system
HM type system alsoKnownAs Hindley–Milner type system
HM type system alsoKnownAs Damas–Milner type system
linked to: Hindley–Milner type system
HM type system extendedBy Damas–Milner type system
linked to: Hindley–Milner type system
Algorithm W basedOn Hindley–Milner type system
Algorithm J usedIn Hindley–Milner type system
Algorithm J assumes Hindley–Milner type discipline
linked to: Hindley–Milner type system
System F influenced Hindley–Milner type system
J. Roger Hindley knownFor Hindley–Milner type system
J. Roger Hindley coDeveloperOf Hindley–Milner type system
J. Roger Hindley notableWork The Principal Type-Scheme of an Object in Combinatory Logic
linked to: Hindley–Milner type system
J. Roger Hindley associatedWith Hindley–Milner polymorphic type system
linked to: Hindley–Milner type system
J. Roger Hindley theoryNamedAfter Hindley–Milner type system