Chameleon is a Haskell-style language which provides a flexible
overloading mechanism based on Constraint Handling Rules (CHRs).
The user can impose conditions on overloaded identifiers via CHRs.
For example, consider the functional dependency

     class Collects ce e | ce -> e where ...

In Chameleon, we would provide instead the following CHR:

rule Collects ce e, Collects ce e' ==> e=e'

The latest version including a number of examples can be down-loaded
from here: http://www.cs.mu.oz.au/~sulzmann/chameleon
Currently, we have only implemented the front-end, i.e. the type checker.

Also available are three papers

  - "Beyond Type Classes", describing the connection and
    differences compared to Haskell-style type classes.
  - "A Theory of Overloading", describing the theoretical machinery
    behind the Chameleon language.
  - "A Theory of Overloading Part II: Semantics and Coherence", describing 
    an implementation scheme which we yet have to implement.

The papers can be found under: http://www.cs.mu.oz.au/~sulzmann/chr

Cheers,
   Martin

   
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to