Does not compile. In the middle of adding region and dirt arguments to types.
Working on desugar so that it correctly desugars type definitions in the presenece of dirt and region parameters
Code compiles after introduction of dirt and region.
Count lines in comments so that error are reported correctly
Subtract one from line number in interactive loop to get correct error reports
Tests pass
Improved type inference for let.
In the middle of constraint check. Did not even try to compile.
Minor fix to make infer.ml compile
Comments indicating where we need to change unification
Merge branch 'master' into effect-system.

Let us no longer do such merges. Instead:
1) make sure that we do all bug fixes in the master branch,
2) rebase all experimental branches on the master before doing a pull request.
Added variances to type, dirt, and region parameters.
Unify now takes variance of its type parameters into account.
Added constraints. Does compile, but does not work.

Each type scheme is equipped with a list of constraints (inequalities between types,  dirts, or regions).
Unify.solve now returns the remaining constraints in addition to the substitution it managed to perform.
Constraints can be substituted, refreshed, and similar, but there is a bug when you perform a substitution on a context.
Quashed the bug, but everything is extremely slow.

It takes about half a minute to load the pervasives.
The main reason is that we never clean up any constraints we get.
What surprises me is that everything is slow, even typing a variable straight from the context.
Unify generates constraints for all arguments.
Unify expands inequalities between type parameters and types.

Whenever we see an inequality between a type parameter and a type, we replace the parameter with a fresh type of the same structure, and compare the two instead.
Inference for let returns a list of dirts.

We will at some point want a list in order to see which computations may be parallelized.
Minor change of handling of dirts in TopLet.
Unification is faster and produces only "atomic" constraints.

Removing duplicate constraints helped performance.