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