A Systematic Approach in Type System Design

based on Constraint Handling Rules






The aim of this project is to develop a generic framework for designing extensions to the Hindley/Milner systems in a uniform manner. In previous work, we have introduced the HM(X) framework, an extension of the HM system parameterized in the constraint domain X. Here, we use Constraint Handling Rules (CHRs) to describe arbitrary first-order theories.

This provides the basis for the Chameleon language.

CHRs come with a simple operational semantics which allows our system to derive a type inference algorithm from a given set of CHRs. In particular, the CHR approach is useful for modelling overloading systems such as Haskell style type classes. We could also demonstrate that CHRs prove to be useful in other settings, e.g. security checking .

Latest News

[April 2004]
  • "XHaskell: Regular Expression Types for Haskell"
  • "Improving Type Error Diagnosis"
  • "Type Annotations in Haskell" available
  • [October 2003] "Sound and Decidable Type Inference for Functional Dependencies" available.
    [August 2003] Chameleon page updates. New papers online.
    [May 2003]
  • "Interactive Type Debugging in Haskell"
  • "Implementing Overloading In Chameleon" available
  • [March 2003] Chameleon type debugger updated
    [December 2002] Some talks (APLAS'02, ICFP'02,...) are now available online.
    [November 2002] New Chameleon release (including type debugger and evidence translation) finally available. Can be downloaded from here
    [October 2002] "Declarative Type Debugging" submitted for publication.
    [June 2002] TR "A Theory of Overloading" (contains all of the important proofs)
    [May 2002] "Beyond Type Classes", submitted for publication.
    [May 2002] A prerelease of Chameleon is available.
    [March 2002]
  • "A Theory of Overloading", submitted for publication.
  • TR "A Theory of Overloading Part II: Semantics and Coherence"
  • Working paper "Beyond Type Classes"
  • [January 2002] Slides of "Constraint Programming meets Dependent Types Theory" talk made available
    [October 22 2001] TR "The HM(CHR) Framework"
    [October 10 2001] TR "Enforcing Security Policies using Overloading Resolution"
    [September 19 2001] TR "A Systematic Approach in Type System Design based on Constraint Handling Rules"
    [September 2001] Release of TIE and CHR solver including a number of examples.

    I've made the slides of a talk available given at the Haskell workshop (10 minutes talk).

    [August 2001] TR "A General Type-Class Framework".

    Martin Sulzmann
    Last modified: Sun May 30 04:59:33 SGT 2004