Haskell 为什么不是';导入列表是否在GHC中工作?
无法编译以下内容:Haskell 为什么不是';导入列表是否在GHC中工作?,haskell,Haskell,无法编译以下内容: 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' 但是删除导入列表可以使编译成功(即使上面导入了JSObj
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
)
为什么GHC(7.4.2)会忽略我导入的
JSObject
?如果你写import Text.JSON(JSObject)
你只导入类型,而不是它的构造函数。要导入构造函数,请执行导入Text.JSON(JSObject(..)或代替。
指定要使用的构造函数名称的逗号分隔列表,例如Text.JSON(JSObject(Cons1,Cons2))
在模块声明后缩进不是惯用的方法,所以,如果你不是特别喜欢,我建议你避免。
module Main where
import Text.JSON
main = print "hello world"
getObject :: JSValue -> JSObject JSValue
getObject (JSObject x) = x