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/


Reply via email to