kirancodes.me
To Proof Maintenance & Beyond!

Instance chains: type class programming without overlapping instances

J. Garrett Morris, Mark P. Jones

Abstract

Type classes have found a wide variety of uses in Haskell programs, from simple overloading of operators (such as equality or ordering) to complex invariants used to implement type-safe heterogeneous lists or limited subtyping. Unfortunately, many of the richer uses of type classes require extensions to the class system that have been incompletely described in the research literature and are not universally accepted within the Haskell community.

Related papers