package inferno

  1. Overview
  2. Docs
A library for constraint-based Hindley-Milner type inference

Install

Dune Dependency

Authors

Maintainers

Sources

archive.tar.gz
md5=cf37ba58410ca1e5e5462d51e4c4fb46
sha512=f96ad6bbf99482455afd8e8a9503357f21798698e6a2a4a8d385877db844ffebcef24f8cf82622c931831896088a9b98e37f4230839a3d03ec1c64fae2a39920

doc/index.html

Inferno

Inferno is an OCaml library for constraint-based type inference and elaboration. Its constraint solver performs first-order unification and handles Hindley-Milner polymorphism. The constraints carry semantic actions that facilitate elaboration, which is the process of constructing an explicitly-typed term.

Public API

The constraint solver API provided by the functor Inferno.Solver.Make is public.

Private API

The documentation of the following modules is made available as an aid to understanding the code. However, these modules should not directly be used outside Inferno; their API is subject to change.

History and Acknowledgements

Inferno has been written by François Pottier and is described in the paper Hindley-Milner elaboration in applicative style (ICFP 2014).

Since 2020, Inferno has benefited from many contributions by Olivier Martinot and Gabriel Scherer. See in particular Quantified Applicatives: API design for type-inference constraints (ML Family Workshop 2020).

OCaml

Innovation. Community. Security.