CHANGES.md 1.24 KB
Newer Older
POTTIER Francois's avatar
POTTIER Francois committed
1
2
# Changes

POTTIER Francois's avatar
POTTIER Francois committed
3
## 2020/11/04
POTTIER Francois's avatar
POTTIER Francois committed
4
5
6
7
8

* 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.
POTTIER Francois's avatar
POTTIER Francois committed
9

POTTIER Francois's avatar
POTTIER Francois committed
10
11
12
13
14
* 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
POTTIER Francois's avatar
POTTIER Francois committed
15
16
17
  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.
POTTIER Francois's avatar
POTTIER Francois committed
18

POTTIER Francois's avatar
POTTIER Francois committed
19
20
21
22
23
24
25
26
27
28
## 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.

POTTIER Francois's avatar
POTTIER Francois committed
29
30
31
32
33
34
35
36
37
## 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.