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 ⓘ