Skip to content
Different type inference algorithms implemented in F#
F#
Branch: master
Clone or download
7sharp9 Merge pull request #13 from tomakita/master
#12 Upgrade to .NET Core 3.0
Latest commit 3427f52 Oct 5, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.paket update paket Feb 25, 2018
HMBasic upgrade to .net core 3.0 Oct 5, 2019
HMMutable-RowPolymorphism upgrade to .net core 3.0 Oct 5, 2019
HMMutable upgrade to .net core 3.0 Oct 5, 2019
HMPure-Rowpolymorphism upgrade to .net core 3.0 Oct 5, 2019
HMPure upgrade to .net core 3.0 Oct 5, 2019
HMSplitSolve upgrade to .net core 3.0 Oct 5, 2019
.gitignore Add partial version of HM with split between constraint generation an… Feb 16, 2018
Hindley-Milner-Basic.md Add code section Mar 4, 2018
Hindley-Milner-Mutable-Rowpolymorphism.md Add code section Mar 4, 2018
Hindley-Milner-Mutable.md Add code section Mar 4, 2018
Hindley-Milner-Pure-Rowpolymorphism.md update docs Mar 4, 2018
Hindley-Milner-Pure.md update docs Mar 4, 2018
Hindley-Milner-Split-Solver.md Add doc for split solver Mar 4, 2018
LICENSE Initial commit Feb 15, 2018
README.md update readme again Mar 18, 2018
paket.dependencies
paket.lock add paket ref ro FSharp.Core Feb 22, 2018

README.md

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! :-)

You can’t perform that action at this time.