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=5c8c0c3f8d9e696f7b00ef2134260289
sha512=cb5702928e0d6c7c0b3a58d261bcc86a964f57d6fb629de8110a17a0a98664022be4243b76419030f04d37d39f2f721c84f938cf6260d65b68933b2016d78c86

CHANGES.md.html

Changes

2020/11/04

  • In the solver's high-level API, introduce a new combinator range, which allows annotating a constraint with a range of source code positions. Incompatible change: the exceptions Unbound, Unify, and Cycle now carry a range.

  • In the solver's high-level API, define the type deep_ty of deep types, and introduce a new function build, which converts a deep type into a type variable, allowing it to appear in a constraint.

  • In the solver's high-level API, introduce a new function instance_. This is a variant of instance. This function is more convenient (and more efficient) than instance when one does not need to know how a type scheme was instantiated.

2020/10/01

  • Change the signature SolverSig.OUTPUT so as to make tyvar an abstract type. An injection function solver_tyvar : int -> tyvar is introduced.

  • Add n-ary products to the System F demo. (Contributed by Gabriel Scherer and Olivier Martinot.)

  • Some cleanup in the directory structure.

2019/09/24

  • Use dune instead of ocamlbuild. All necessary library files should now be properly installed (which was not the case in the previous version).

2018/04/05

  • First release of Inferno as an opam package.