Hindley–Milner type system

A Hindley–Milner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as Damas–Milner or Damas–Hindley–Milner. It was first described by J. Roger Hindley and later rediscovered by Robin Milner. Luis Damas contributed a close formal analysis and proof of the method in his PhD thesis.

Comment
enA Hindley–Milner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as Damas–Milner or Damas–Hindley–Milner. It was first described by J. Roger Hindley and later rediscovered by Robin Milner. Luis Damas contributed a close formal analysis and proof of the method in his PhD thesis.
Has abstract
enA Hindley–Milner (HM) type system is a classical type system for the lambda calculus with parametric polymorphism. It is also known as Damas–Milner or Damas–Hindley–Milner. It was first described by J. Roger Hindley and later rediscovered by Robin Milner. Luis Damas contributed a close formal analysis and proof of the method in his PhD thesis. Among HM's more notable properties are its completeness and its ability to infer the most general type of a given program without programmer-supplied type annotations or other hints. is an efficient type inference method in practice, and has been successfully applied on large code bases, although it has a high theoretical complexity. HM is preferably used for functional 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 with type class constraints like those in Haskell.
Hypernym
System
Is primary topic of
Hindley–Milner type system
Label
enHindley–Milner type system
Link from a Wikipage to an external page
github.com/wh5a/Algorithm-W-Step-By-Step/blob/master/AlgorithmW.pdf
github.com/wh5a/Algorithm-W-Step-By-Step
eli.thegreenplace.net/2018/type-inference/
Link from a Wikipage to another Wikipage
Abstract syntax
Ad hoc polymorphism
Assignment (mathematical logic)
C (programming language)
C++
Cardinality
Category:1969 in computing
Category:1978 in computing
Category:1985 in computing
Category:Algorithms
Category:Formal methods
Category:Lambda calculus
Category:Theoretical computer science
Category:Type inference
Category:Type systems
Category:Type theory
Combinatory logic
Completeness (logic)
Computational complexity
Consistency
Disjoint-set data structure
Equivalence class
F-bounded polymorphism
Fixed point combinator
Formal grammar
Formal system
Functional language
Functional programming
Haskell (programming language)
Haskell Curry
Identity function
J. Roger Hindley
John Alan Robinson
Judgment (mathematical logic)
Kind (type theory)
Lambda calculus
Lattice (order)
List (computer science)
Luca Cardelli
Luis Damas
ML (programming language)
Monad (functional programming)
Name binding
Normalization property (abstract rewriting)
NP-hard
Object-oriented programming
Occurs check
Parametric polymorphism
Parse tree
Partial order
Pascal (programming language)
Polymorphism (computer science)
Principal type
Procedure (computer science)
Prolog
Robert Feys
Robin Milner
Row polymorphism
Rule of inference
Scope (computer science)
Second order lambda calculus
Side effect (computer science)
Simply typed lambda calculus
Syntax-directed
System F
System F-sub
Term (logic)
Turing completeness
Type annotation
Type class
Type inference
Type inhabitation
Type system
Type theory
Typing rule
Undecidable problem
Unification (computer science)
Unification (computing)
Wikt:assumption
SameAs
Hệ thống kiểu Hindley–Milner
m.0h52rpg
Q200996
Typinferenz nach Hindley-Milner
v2S6
Система типов Хиндли — Милнера
SeeAlso
Type class
Typing rules
Subject
Category:1969 in computing
Category:1978 in computing
Category:1985 in computing
Category:Algorithms
Category:Formal methods
Category:Lambda calculus
Category:Theoretical computer science
Category:Type inference
Category:Type systems
Category:Type theory
WasDerivedFrom
Hindley–Milner type system?oldid=1117569207&ns=0
WikiPageLength
60842
Wikipage page ID
32612385
Wikipage revision ID
1117569207
WikiPageUsesTemplate
Template:Bracket
Template:Citation needed
Template:Cite book
Template:Main
Template:Manual
Template:Math
Template:Mono
Template:Mvar
Template:Original research
Template:Refbegin
Template:Refend
Template:Reflist
Template:See also
Template:Short description
Template:Var