Automatically derived instances
Juan Carlos Arevalo Baeza
jcab.lists at JCABs-Rumblings.com
Sun Aug 28 23:25:45 EDT 2005
David Menendez wrote:
>Juan Carlos Arevalo Baeza writes:
>
>
>
>The way Haskell type classes
>work, the overlap is determined without looking at the context, so "Show
>a" will overlap with every possible instance for Show, including Show
>Int, which is predefined.
>
>
Ah. :-P Bummer.
>I'm not sure what the official justification for that is, but reason is
>to avoid situations like this:
>
> class A t where a :: t
> class B t where b :: t
> class C t where c :: t
>
> instance A t => C t where c = a
> instance B t => C t where c = b
>
> instance A Char where a = 'a'
> instance B Char where b = 'b'
>
>What should c :: Char evaluate to?
>
>
Right. Ambiguity. But as long as there's no ambiguity, there's no
reason to be this restrictive. Oh, well.
JCAB
More information about the Glasgow-haskell-users
mailing list