Different type inference algorithms implemented in F#
Switch branches/tags
Nothing to show
Clone or download
Latest commit 50a94cd Mar 18, 2018


Write you an inference in F#

This repo is inspired by other great resources in this area but targeted at idiomatic and easy to follow F# code. Saying that, type inference algorithms are not the easiest to get your head round but this will be a place to describe different types and methods of doing type inference.

The algorithms are split into pure and mutable Hindley-Milner type inference and row polymorphism extension to it.

Hindley-Milner inference

Hindley-Milner inference with row polymorphism

This repo grew out of a small language that I was tinkering with to test out various ideas around type systems and while reading one of the papers on rank n types I came across the following which is quite true:

Considering how many papers there are on type systems, there is surprising little literature on type inference that is aimed unambiguously at implementors.

If you have any suggestions or want to make any contributions I'll happily take any! :-)