以下无法编译:
module Main where
import Text.JSON (JSObject, JSValue)
main = print "hello world"
getObject :: JSValue -> JSObject JSValue
getObject (JSObject x) = x
给出错误:
Not in scope: data constructor `JSObject'
但是删除导入列表可以使编译成功成功(即使上面已导入JSObject
)
module Main where
import Text.JSON
main = print "hello world"
getObject :: JSValue -> JSObject JSValue
getObject (JSObject x) = x
为什么GHC(7.4.2)忽略了我对JSObject
的导入?
答案 0 :(得分:9)
如果您编写import Text.JSON (JSObject)
,则只导入类型,而不是它具有的构造函数。要导入构造函数,请import Text.JSON (JSObject(..))
或代替..
指定要使用的逗号分隔的构造函数名称列表,例如: Text.JSON(JSObject(Cons1, Cons2))