Type error messages containing calls to assert could be prettier.
The following piece of code contains a type error. It also contains a call to assert.
import Control.Exception.Assert
main = putStrLn (assert True 'a')
GHC 7.8.3 reports the type error as follows:
Err.hs:3:30:
Couldn't match type ‘Char’ with ‘[Char]’
Expected type: String
Actual type: Char
In the third argument of ‘GHC.IO.Exception.assertError’, namely
‘'a'’
In the first argument of ‘putStrLn’, namely
‘(GHC.IO.Exception.assertError "Err.hs:3:18-23"## True 'a')’
In the expression:
putStrLn (GHC.IO.Exception.assertError "Err.hs:3:18-23"## True 'a')
The calls to assert has already been desugared, which is not necessarily very readable. I think it would be better if GHC just printed the call to assert as it appeared in the source.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.8.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |