Could some one explain to me why this is OK:
class T f r
instance T a (a)
instance T (c a b) (c a (b))
but this is not:
class T f r
instance T a (d a)
instance T (c a b) (c a (d b))
as Hugs gives (with -98 +o)
ERROR "T.hs" (line 4): Overlapping instances for class "T"
*** This instance : T (a b c) (a b (d c))
*** Overlaps with : T a (b a)
*** Common instance : T (a b c) (a b (a b c))
and GHC gives
Duplicate or overlapping instance declarations
for `T a (d a)' at T.hs:3 and T.hs:4
Thanks in advance.
--
Kevin Atkinson
[EMAIL PROTECTED]
http://metalab.unc.edu/kevina/