Derivable type classes

NOTTCS-TR-00-1 |

Proceedings of the Sixth Conference on Uncertainty in Artificial Intelligence (UAI1990)

Generic programming allows you to write a function once, and use it many times at different types. A lot of good foundational work on generic programming has been done. The goal of this paper is to propose a practical way of supporting generic programming within the Haskell language, while going “with the grain” of the language.

On the way, we came across a separate issue, concerning type-class overloading where higher kinds are involved. We propose a simple type-system extension to allow the programmer to write richer contexts than is currently possible.