无法理解这个模块/类型错误

时间:2014-07-17 11:39:23

标签: json haskell functional-programming

我正在尝试在haskell中使用Aeson JSON库。现在,我只需要使用“decode”来读取JSON转储。

import Data.Aeson
import Data.ByteString as BS
import Control.Applicative

main :: IO ()
main = print $ decode <$> BS.readFile "json"

尝试编译/运行时出现以下错误:

Couldn't match type 'ByteString'
with 'Data.ByteString.Lazy.Internal.ByteString'
NB: 'ByteString is defined in 'Data.ByteString.Internal'
    'Data.ByteString.Lazy.Internal.ByteString'
     is defined in 'Data.ByteString.Lazy.Internal.ByteString

这个错误对我没有意义。我尝试导入ghc描述的文件,但导入失败或无法解决问题。 感谢

1 个答案:

答案 0 :(得分:2)

ByteString有两种变体:由Data.ByteString导出的严格(默认值)和由Data.ByteString.Lazy导出的惰性变体。

Aeson在惰性字节字符串之上工作,因此您应该将第二行更改为

import Data.ByteString.Lazy as BS