Error message doesn't mention necessary extension in warning
In this example(Taken from http://www.haskell.org/haskellwiki/GHC/AdvancedOverlap) with the exception of removing -fglasgow-exts), GHC gives the wrong error message and fails to mention the missing necessary extension (which turns out to be ScopedTypeVariables).
If you take the example, and remove -fglasgow-exts and try to only use the minimum required language extensions,
{-# LANGUAGE EmptyDataDecls,
MultiParamTypeClasses,
FunctionalDependencies,
OverlappingInstances,
FlexibleInstances,
UndecidableInstances #-}
GHC fails with the error
wiki.hs:30:12:
Could not deduce (Print' flag a)
from the context (Print a, ShowPred a flag1, Print' flag1 a)
arising from a use of `print'' at wiki.hs:30:12-35
Possible fix:
add (Print' flag a) to the context of the instance declaration
In the expression: print' (undefined :: flag)
In the definition of `print': print = print' (undefined :: flag)
In the instance declaration for `Print a'
Failed, modules loaded: none.
However, it compiles fine if ScopedTypeVariables is added to the list of extensions.
Trac metadata
Trac field | Value |
---|---|
Version | 6.10.4 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |