Title: Instance Chains: Type Class Programming without Overlapping Instances
Haskell Type classes are not only useful for resolving ad-hoc
polymorphism. When used with the right extensions, type classes can
facilitate fairly complex type-level programs. Unfortunately those
extensions are not always well-defined and well-behaved.
This talk introduces instance chains as an alternative to the current
Haskell type class system, and shows how it resolves some of the
shortcomings of the current implementation. Along the way some of the
theoretical background of type classes is introduced.