我有一个文本列表:
foo :: [Text]
foo = ["Foo", "Bar"]
我使用scotty的json函数发送回复。
post "/generate" $ do
json foo
我得到无实例错误:
No instance for (ToJSON Text) arising from a use of ‘json’
当我添加:
instance ToJSON Text where
toJSON = String
instance FromJSON Text where
parseJSON = withText "Text" pure
我明白了:
Couldn't match type ‘text-1.1.1.3:Data.Text.Internal.Text’
with ‘Text’
NB: ‘text-1.1.1.3:Data.Text.Internal.Text’
is defined in ‘Data.Text.Internal’ in package ‘text-1.1.1.3’
‘Text’
is defined in ‘Data.Text.Internal.Lazy’ in package ‘text-1.2.0.0’
Expected type: Text -> Value
Actual type: text-1.1.1.3:Data.Text.Internal.Text -> Value
In the expression: String
In an equation for ‘toJSON’: toJSON = String
好像我安装了多个版本的text- *,而且我已经卡住了。
答案 0 :(得分:0)
您正在尝试使用与text-1.1.1.3链接的aeson来处理text-1.2.0.0中的值(很可能是您最后安装的文本版本)。
你可能想要重新安装aeson以及任何破坏的软件包。
另一种方法是使用cabal构建项目并使用.cabal文件中绑定的版本来强制使用text-1.1.1.3,但这几乎肯定不你是什么的想做。