Improve type mismatch error messages
Generating better type-error messages is a hoary chestnut, but Herbert brought my attention to this thread on reddit, which has the following idea.
At the moment, from
module Foo where
addThree = \x -> x + 3 :: Int
y = addThree $ Just 5
we get this error:
Foo.hs:2:20
Couldn't match expected type `Int' with actual type `Maybe a0'
In the return type of a call of `Just'
In the second argument of `($)', namely `Just 5'
In the expression: addThree $ Just 5
Maybe we could generate this instead
Foo.hs:2:20
inferred: "Just 5" has type "Maybe a0"
expected: second argument of "($)" must have type "Int"
in the expression: addThree $ Just 5
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.8.2 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Compiler |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |
Edited by Alex D