在ghci中显示完整类型
Display full type in ghci
我有一个 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 应该使用您可以在文件中使用的相同语法。也就是说,如果你 import Data.ByteString.Lazy.Char8
unqualified 你将得到 ByteString
unqualified,否则你应该得到 qualified type.
检查 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
我有一个 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 应该使用您可以在文件中使用的相同语法。也就是说,如果你 import Data.ByteString.Lazy.Char8
unqualified 你将得到 ByteString
unqualified,否则你应该得到 qualified type.
检查 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