[Haskell-cafe] Extending Type Classes

Frantisek Farka frantisek at farka.eu
Fri Jul 5 18:38:15 CEST 2013

Hello all,

I was looking for my master thesis topic and my supervisor suggested an
idea of extending class system so it enables refactoring Type Class
hierarchy without affecting client source code which is using
refactored classes. 

One example is Functor - Applicative - Monad problem and corresponding
proposal [1]. But this proposal instead of allowing the change through
extending Type Classes forces client code to prepare for the new class
layout and then switch the classes to the new layout.

My goal is rather to allow direct changes in class hierarchy without
affecting client source code. I have found different proposals
approaching this problem on HaskellWiki, some of them are overlapping,
some of them refer each other. The most promising to me seems Default
superclass instances proposal [2]. This one is somehow implemented in
the Strathclyde Haskell Enhancement (SHE) [3] but I haven't found much
reference or user experience really.

So the reason why I write this email is to ask you for some tips where
above mentioned problem occurs in real source code. I would like to
investigate some real examples before designing some ad hoc changes to
the Type Classes system.

Besides that I'd appreciate anyone who has used default superclass
instances in SHE to share his experience.

And last but not least I am always grateful for any comments and

Best wishes


[1] http://www.haskell.org/haskellwiki/Functor_hierarchy_proposal
[2] http://hackage.haskell.org/trac/ghc/wiki/DefaultSuperclassInstances
[3] https://personal.cis.strath.ac.uk/conor.mcbride/pub/she/

More information about the Haskell-Cafe mailing list