overlapping instances 7.10.1

Sergei Meshveliani mechvel at botik.ru
Thu May 21 13:40:37 UTC 2015


I wrote recently about finding places to set {-# OVERLAPPING #-}
when porting an application from 7.8.2 to 7.10.1.

I am doing this for porting  docon-2.12  from 7.8.2 to 7.10.1.

And  ghc-7.10.1  indeed helped me to find several places to set this
pragma (instead of using the total key -XOverlappingInstances).

Finally, it has come to this module:

Preprocessing library docon-2.12.1...
[48 of 86] Compiling ResRing__  ( ResRing__.hs, dist/build/ResRing__.o )

    Overlapping instances for Eq (Maybe PropValue)
      arising from a use of ‘/=’
    Matching instances:
      instance Eq a => Eq (Maybe a) -- Defined in ‘GHC.Base’
      instance (Residue r, Eq a) => Eq (r a) -- Defined in ‘ResEuc0_’
    In the expression: lookup IsGxBasis ps /= Just Yes

As before, I set  
   instance {-# OVERLAPPING #-} (Residue r, Eq a) => Eq (r a)  where

in  ResEuc0_.hs.

But this does not help, the compiler continues with the same report.

I see the difference to previous porting process in that one of the
overlapping instances is of the GHC library, so that I cannot set the
needed overlap pragma for it.

On the other hand, ghc-7.8.2 compiled docon-2.12 successfully.

What my be a way out?



More information about the Glasgow-haskell-users mailing list