
You can add OverlappingInstances to allow for both [a] and [Char]
intstances be used. It will choose the least general instance for
you.
On Wed, Jul 13, 2011 at 8:56 AM, ARJANEN Loïc Jean David
I have the following problem with typeclasses : I have created a type class in a manner similar to the following
module Dummy where import Char class (Show t) => Dummy t where kite :: t -> t instance (Dummy t) => Dummy [t] where kite = reverse instance Dummy String where kite = map toUpper
And use it thus :
import Dummy main :: IO () main = do print.kite $ "Rest in peace"
If I compile without any option, I get as expected an error because of the type synonym instance. If I remove the instance for String, I also get as expected an error because Char is not an instance of Dummy. But if I add (as suggested in the first error message) the GHC's option -XTypeSynonymInstances, I get an error because of overlapping instances, even if Char is still not an instance of Dummy and I don't see how String could be eligible for the (Dummy t) => Dummy [t] instance...
Thanks in advance for your help, ARJANEN Loic.
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners