我有一个 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 提示符下获取此类信息?
最佳答案
GHCi 应使用与您的文件中使用的语法相同的语法。也就是说,如果您导入不合格的 Data.ByteString.Lazy.Char8
,您将获得不合格的 ByteString
,否则您应该获得合格的类型。
检查 Haskell 文件中的所有导入:是否以不合格的方式导入 ByteString
类型?
正如您在下面看到的,我无法在小型 GHCi session 中重现您的问题:
> import qualified Data.ByteString.Lazy.Char8 as BSL
> let a :: String ; a = "aa"
> :t BSL.pack a
BSL.pack a :: BSL.ByteString
关于haskell - 在 ghci 中显示完整类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27740254/