SCC annotations cause compile errors
The following program will not compile:
bad s = take 10 . {-# SCC "foo" #-} drop 10 $ s
It fails with the message
Couldn't match expected type `a -> [a1]'
against inferred type `[a2]'
In the second argument of `(.)', namely `(drop 10 $ s)'
In the expression: take 10 . (drop 10 $ s)
In the definition of `bad': bad s = take 10 . (drop 10 $ s)
However, if the SCC annotation is removed it compiles:
good s = take 10 . drop 10 $ s
Adding parentheses can also fix it:
good2 s = take 10 . ({-# SCC "foo" #-} drop 10) $ s
but it's still annoying that adding an annotation can cause compilation to fail.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 6.8.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture | Unknown |