[Hugs-bugs] FD handling unaware of overlap resolution?

Claus Reinke claus.reinke at talk21.com
Mon Feb 20 07:16:14 EST 2006

>>    http://www-users.cs.york.ac.uk/~ndm/projects/winhugs.php
> Yes, please try that out.  When WinHugs is ready, there will be a Hugs
> release.

okay then, on to bugs:-)

with the following code

    -- | field selection
    infixl #?

    class Select label val rec | label rec -> val where
      (#?) :: rec -> label -> val

    instance Select label val ((label,val),r) where
      ((_,val),_) #? label = val

    instance Select label val r => Select label val (l,r) where
      (_,r)       #? label = r #? label

hugs -98 +o complains [Neil: would it be possible to add a WinHugs option
for switching to copy&past *without formatting*?]:

    ERROR file:.\Dilemma.hs:33 - Instances are not consistent with dependencies
    *** This instance : Select a b (c,d)
    *** Conflicts with : Select a b ((a,b),c)
    *** For class : Select a b c
    *** Under dependency : a c -> b

but according to the resolution of overlapping instances, the offending 
instances shouldn't even exist, right? in other words, after resolution, 
there are no overlaps left, hence no two ways to select an instance.
whenever the two instance definitions overlap, the first one is chosen,
so the dependency is maintained.

or am I missing something? [ghci accepts these definitions]


More information about the Hugs-Bugs mailing list