A minimal implementation of an Hindley–Milner type checker, with LSP integration (see the vscode language client)
Example:
let is_even n =
if n == 0 then
true
else if n == 1 then
false
else
not (is_even (n - 1))
in
is_even 42
Inferred type:
Bool