ExtendedDefaultRules-related regression in GHC 8.0.2
Commit https://git.haskell.org/ghc.git/commit/9a34bf1985035858ece043bf38b47b6ff4b88efb introduced a regression between GHC 8.0.1 and 8.0.2 regarding the behavior of ExtendedDefaultRules
. In GHC 8.0.1, this program
module Bug where
default (Bool)
would compile without issue. On GHC 8.0.2, however, it is rejected with this error message:
$ /opt/ghc/8.0.2/bin/ghc Bug.hs
[1 of 1] Compiling Bug ( Bug.hs, Bug.o )
Bug.hs:3:1: error:
• The default type ‘Bool’ is not an instance of ‘Num’
• When checking the types in a default declaration
As a result, the shelly
library now fails to compile with GHC 8.0.2 (see https://github.com/yesodweb/Shelly.hs/issues/130). A workaround is to explicitly enable ExtendedDefaultRules
at the top of the module.
Richard, do you understand what's going on here? I'm not sure if this is a real regression or just GHC being more particular (admittedly, I don't understand many of the intricacies of ExtendedDefaultRules
).
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.2-rc1 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | high |
Resolution | Unresolved |
Component | Compiler (Type checker) |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |