package inferno
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
A library for constraint-based Hindley-Milner type inference
Install
dune-project
Dependency
Authors
Maintainers
Sources
archive.tar.gz
md5=cf37ba58410ca1e5e5462d51e4c4fb46
sha512=f96ad6bbf99482455afd8e8a9503357f21798698e6a2a4a8d385877db844ffebcef24f8cf82622c931831896088a9b98e37f4230839a3d03ec1c64fae2a39920
doc/CHANGES.html
Changes
2022/06/03
- Support for rigid variables, that is, variables that cannot be unified with other rigid variables or with older flexible variables. These variables are introduced by the new combinators
letr1andletrn. The exceptionVariableScopeEscape, which is raised when a rigid variable escapes its scope, is also new. - Incompatible changes to the solver's high-level API. The module
Inferno.SolverHihas been renamed toInferno.Solver. The combinators(^&),map,($$), and(^^)have been removed. The combinatorconstructhas been renamedshallow. The combinatorbuildhas been renameddeep. The combinatorwitnesshas been renameddecode. The combinatorinstance_has been removed. - New functions
pprintandprint. These functions allow printing a constraint. They can be useful for debugging purposes. - Performance improvements.
- Improved documentation.
2021/12/22
- Incompatible changes to the solver's high-level API. The concept of a
binderhas been introduced, and OCaml's binding operatorslet@,let+,and+are now used, so as to make it easier to build constraints. (Contributed by Olivier Martinot and Gabriel Scherer.) The types of the combinatorsexistandconstructhave been simplified. The new combinatorwitnesscan be used to get access to the witness (that is, the final decoded type) for a type variable.
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 exceptionsUnbound,Unify, andCyclenow carry a range. - In the solver's high-level API, define the type
deep_tyof deep types, and introduce a new functionbuild, 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 ofinstance. This function is more convenient (and more efficient) thaninstancewhen one does not need to know how a type scheme was instantiated.
2020/10/01
- Change the signature
SolverSig.OUTPUTso as to maketyvaran abstract type. An injection functionsolver_tyvar : int -> tyvaris 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
duneinstead ofocamlbuild. 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
opampackage.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page