/type-inferencer

hindley-milner algorithm

Primary LanguageRust

Type Inferencer

A toy implementation of Hindley-Milner type inference. The program walks through a given expression node, generates a set of constraints and unifies them to produce a set of substitutions.

Blog post: Type Inference

Resources

Here are the resources I used to learn this algorithm:

  1. Chapter 30 in Programming Languages: Application and Interpretation (first edition)
  2. Chapter 15.3.2 in Programming Languages: Application and Interpretation (second edition)
  3. Unification - A blog post.
  4. type-unify.rkt - An unification implementation in Racket.