More information in occurs check message
$ cat A.hs
module A
where
foo :: [a] -> a
foo = id
$ ghc -c A.hs
A.hs:5:0:
Occurs check: cannot construct the infinite type: a = [a]
When generalising the type(s) for `foo'
It would be nice if GHC could give more information about where and how the error is being generated, for example which expressions are making it try to unify a and [a]. (Especially in more complicated functions, it can be difficult to track down the bug.)
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.8.2 |
| Type | FeatureRequest |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | Unknown |
| Architecture | Unknown |