[Haskell-cafe] typeclass question

Jonathan Cast jonathanccast at fastmail.fm
Thu Sep 11 12:39:14 EDT 2008


On Thu, 2008-09-11 at 18:34 +0200, Johannes Waldmann wrote:
> >> if support for this simple shape of dependencies ( ... | a -> b )  ...
> 
> > For backwards-compatibility reasons, 
> 
> Yes.

This gives point, then, to my concerns about letting Haskell become a
practical language.  At some point, production systems always seem to be
end-of-lifed by backwards compatibility.

> > or because you think they're better than type families?
> 
> Don't know (haven't used them).
> 
> Concrete example: I have  this "class Partial p i b | p i -> b"
> http://dfa.imn.htwk-leipzig.de/cgi-bin/cvsweb/tool/src/Challenger/Partial.hs?rev=1.28
> 
> What would type families buy me here?

I can't figure out what b is.  I could, of course, argue that it would
force you to come up with a name for `b', so people reading the code
could understand what it does.

> In my code, this class has tons of instances (I count 80).
> How much would I need to change them?

   instance Partial p i b where
=> instance Partial p i
     type B p i = b

And type signatures involving Partial would have to change.

>  Could this be automated?

To a certain extent.  Finding the places that need to change could be
automated, which is always the first step :)

jcc




More information about the Haskell-Cafe mailing list