在ghci中显示完整类型

时间:2015-01-02 09:54:16

标签: haskell ghci bytestring

我有一个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提示符下获取此类信息?

1 个答案:

答案 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