Error messages have the wrong qualified names
This module:
module Foo where
import Data.ByteString.Lazy (ByteString)
import qualified Data.ByteString.Lazy as BS
import qualified Data.ByteString.Lazy.Char8 as BSC
check :: ByteString -> Bool
check bs = BS.empty bs
produces this type error:
$ ghci -v0 q.hs
q.hs:9:11:
Couldn't match expected type `ByteString -> Bool'
against inferred type `ByteString'
In the expression: BSC.empty bs
In the definition of `check': check bs = BSC.empty bs
i.e. it claims that the expression is BSC.empty bs
, whereas the program text says BS.empty bs
.
Similarly, in this module:
module Foo where
import Data.ByteString.Lazy (ByteString)
import qualified Data.ByteString.Lazy as BS
import Data.ByteString.Lazy.Char8
check :: ByteString -> Bool
check bs = BS.empty bs
the qualifier has disappeared completely in the error message:
$ ghci -v0 q.hs
q.hs:9:11:
Couldn't match expected type `ByteString -> Bool'
against inferred type `ByteString'
In the expression: empty bs
In the definition of `check': check bs = empty bs
Prelude>
Trac metadata
Trac field | Value |
---|---|
Version | 6.11 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |