Constraint Based Type Inferencing in Helium

Bastiaan Heeren, Juriaan Hage, and S. Doaitse Swierstra

The Helium compiler implements a significant subset of the functional programming language Haskell. One of the major motivations for developing it was to yield understandable and appropriate type error messages. The separation between the generation, the ordering and the solving of constraints on types has led to a flexible framework which has been employed successfully in a classroom setting. Among its many advantages are the possibility to plug in heuristics for deciding the most likely source of a type error, the generation of multiple type error messages during a single compilation, and the possibility for programmers to tune the type inference process and resulting messages to their own needs without having to know any of the details of the implementation.

In Proceedings of the CP 2003 Workshop on Immediate Applications of Constraint Programming (ACP), pages 57-78, 2003.
Download paper (© 2003)