11 Feb 2003 20:19
Disjoint type classes
Jose Emilio Labra Gayo <labra <at> lsi.uniovi.es>
2003-02-11 19:19:53 GMT
2003-02-11 19:19:53 GMT
I have a large program where I would like to include disjoint type classes
into a new type class.
My problem can be reduced to the following example (taken from [1]):
> class Num a => Dividable a
> where dividedBy :: a -> a -> a
> instance Fractional a => Dividable a where
> dividedBy = (/)
> instance Integral a => Dividable a where
> dividedBy = div
Which doesn't work because Haskell doesn't detect that
"Integral" and "Fractional" are disjoint.
Is there a way to implement these type classes with current Haskell
implementations?
[1] K. Glynn, M. Sulzmann, P.J. Stuckey
Type Classes and Constraint Handling Rules
http://www.cs.mu.oz.au/tr_submit/test/cover_db/mu_TR_2000_7.html
Best regards, Jose Labra
RSS Feed