Checking whether a default declaration is an instance of a defaultable typeclass is broken
In TcDefaults.hs, tcDefaults is supposed to check whether the supplied default type is an instance o Num or IsString (note the lack of extended defaults here, so this has been broken for quite some time).
Following the code we can see that simplifyDefault in TcSimplify.hs calls reportAllUnsolved and it does report the error -- with typechecker tracing on we see
Adding error:
<interactive>:19:1: error:
No instance for (Num []) arising from a 'default' declaration
When checking the types in a default declaration
But typechecking never actually fails, so it returns Just () regardless and the error gets swallowed.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.10.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | low |
| Resolution | Unresolved |
| Component | Compiler (Type checker) |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |