Title Rewrite the typechecker for YHC and nhc98
Student Mathieu Boespflug
Mentor Malcolm Wallace
Abstract
I propose to reimplement the type checker used in both the nhc98 and
YHC compilers, using Constraint Handling Rules (CHR) and based on work in the Chameleon project.

* Motivation

The current typechecker used in both compilers seems to be largely
unmaintained, is difficult to understand and extend, and is
occasionally wrong. Many common type system extensions to Haskell 98
remain unsupported.

In light of the upcoming Haskell' report that is likely to extend the
type system in a number of ways (eg MPTC+FD, rank N types [1]), it is
becoming increasingly important to the maintainers that the
capabilities of the type system remain up to date, and to provide a
simple and easily extendable platform for further research and
experimentation with type systems. From a larger perspective, it is
important for the good health of Haskell as a language that we
maintain a certain amount of variety in implementations and offer
viable alternatives to GHC.

The goals for the type checker are:

1. To be simple and easy to understand
2. Easy to extend
3. Provide good error messages.