evincarofautumn/kitten — pull request #112 by evincarofautumn (2013-11-24 03:06:18+00:00)
Title: Improve the type checker.

* Make instance checks work correctly (skolemization) and add a slew of tests related to instance checking.

* Make annotated order-n functions rank-n in row variables. Scalar variables are still restricted to prenex polymorphism.

* Rescope quantifiers in generalized function types. This allows the limited form of higher-rank polymorphism to be inferred.

* Generalization was only using the free variables of a type; remove this hack by fixing a bug in enumerating the bound variables of a type environment.

* Remove the useless `id` function.