我有一个ByteString
类型的变量。我想看看它属于哪个包。这对于ByteString类型可能很有用,因为在不同的包中有几种不同的实现。
例如,我有以下代码:
import qualified Data.ByteString.Lazy.Char8 as BSL
json :: String
json = "{\"document\":{\"name\":\"doc1\",\"content\":\"content1\"}}"
我希望在ghci> :t BSL.pack json
时获得完整的套餐。我得到的是BSL.pack json :: ByteString
,而我想要的是BSL.pack json :: Data.ByteString.Lazy.Char8
。有没有办法在ghci提示符下获取此类信息?
答案 0 :(得分:2)
GHCi应使用您在文件中使用的相同语法。也就是说,如果您导入Data.ByteString.Lazy.Char8
不合格,您将获得ByteString
不合格,否则您应该获得合格类型。
检查Haskell文件中的所有导入:是否以不合格的方式导入ByteString
类型?
如下所示,我无法在小型GHCi会话中重现您的问题:
> import qualified Data.ByteString.Lazy.Char8 as BSL
> let a :: String ; a = "aa"
> :t BSL.pack a
BSL.pack a :: BSL.ByteString