Bug in GHC when compiling with -O ?
Klaus Lüttich
luettich at tzi.de
Tue Aug 17 09:39:16 EDT 2004
Hello,
we are working on a very large project called Hets (heterogenous tool
set) where we encounterd two related errors in ghc, which disappear when
we start over the compilation at that point where the compilation
stopped
due to one of that errors. We certainly use the current version 6.2.1 of
GHC.
We use in conjunction these command line switches for the compilation:
--make -fglasgow-exts -fallow-overlapping-instances
-fallow-undecidable-instances -O
where actually only some imported packages really need these switches:
-fallow-overlapping-instances -fallow-undecidable-instances
The tar-ball with the error enabled in the toplevel Makefile is
available here:
http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/hets-src.tgz
(4.2M)
The errors also disappear when we compile the problematic modules
separately.
Cheers,
Klaus
The error messages we get when compiling:
Compiling Common.Lib.Rel ( ./Common/Lib/Rel.hs, ./Common/Lib/Rel.o )
./Common/Lib/Rel.hs:102:
Could not unambiguously deduce (Show (a, a))
from the context (Show (Rel a), Show a, Ord a)
arising from use of `show' at ./Common/Lib/Rel.hs:102
The choice of (overlapping) instance declaration
depends on the instantiation of `a'
Probable fix:
Add (Show (a, a)) to the class or instance method `show'
Or add an instance declaration for (Show (a, a))
In the first argument of `(.)', namely `show'
In the definition of `show':
show = show . (Common.Lib.Set.fromList . toList)
In the definition for method `show'
Compiling Common.PPUtils ( ./Common/PPUtils.hs, ./Common/PPUtils.o )
./Common/PPUtils.hs:176:
Could not unambiguously deduce (Show (a, b))
from the context (PrettyPrint a, PrettyPrint b)
arising from the instance declaration at ./Common/PPUtils.hs:176
The choice of (overlapping) instance declaration
depends on the instantiation of `a, b'
Probable fix:
Add (Show (a, b)) to the instance declaration superclass context
Or add an instance declaration for (Show (a, b))
In the instance declaration for `PrettyPrint (a, b)'
--
Klaus Lüttich Email: luettich at tzi.de
FB 3 Phone: +49-421-218-7129
Uni Bremen
More information about the Glasgow-haskell-users
mailing list