Hindley-Milner type system (source code)

= Hindley-Milner type system
{c}
{wiki=Hindley–Milner_type_system}

The pure <Hindley-Milner type system> combines <function types>, <type inference> and <let polymorphism>. It solves constraints by <type unification> and generalizes eligible <type variables> at `let` bindings. Robin Milner's 1978 paper presents <Algorithm W> and proves its soundness for the paper's language; it also acknowledges Roger Hindley's earlier work on finding general types. https://www.pure.ed.ac.uk/ws/files/15143545/1_s2.0_0022000078900144_main.pdf[Milner, A Theory of Type Polymorphism in Programming (1978), introduction and sections 3.5, 4.1–4.2]{ref}