veera-sivarajan/type-inferencer

hindley-milner algorithm

Rust

64

53 commits

updated Jun 3, 2023

See the code

README

* 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: [[https://veera.app/type_inference.html][Type Inference]]
** Resources
Here are the resources I used to learn this algorithm:
1. Chapter 30 in [[https://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/plai-2007-04-26.pdf][Programming Languages: Application and Interpretation (first edition)]]
2. Chapter 15.3.2 in [[https://cs.brown.edu/courses/cs173/2012/book/types.html#%28part._.Type_.Inference%29][Programming Languages: Application and Interpretation (second edition)]]
3. [[https://eli.thegreenplace.net/2018/unification/][Unification]] - A blog post.
4. [[https://github.com/vkz/PLAI/blob/master/type-unify.rkt][type-unify.rkt]] - An unification implementation in Racket.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

hindley-milner
rust
typesystem

Contributors

veera-sivarajan

53 commits

Languages

Rust

100.0%

veera-sivarajan/type-inferencer

hindley-milner algorithm

Rust

64

53 commits

updated Jun 3, 2023

See the code

README

* 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: [[https://veera.app/type_inference.html][Type Inference]]
** Resources
Here are the resources I used to learn this algorithm:
1. Chapter 30 in [[https://cs.brown.edu/~sk/Publications/Books/ProgLangs/2007-04-26/plai-2007-04-26.pdf][Programming Languages: Application and Interpretation (first edition)]]
2. Chapter 15.3.2 in [[https://cs.brown.edu/courses/cs173/2012/book/types.html#%28part._.Type_.Inference%29][Programming Languages: Application and Interpretation (second edition)]]
3. [[https://eli.thegreenplace.net/2018/unification/][Unification]] - A blog post.
4. [[https://github.com/vkz/PLAI/blob/master/type-unify.rkt][type-unify.rkt]] - An unification implementation in Racket.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

hindley-milner
rust
typesystem

Contributors

veera-sivarajan

53 commits

Languages

Rust

100.0%