如果我使用类型类AModule
创建模块Foo
,
module AModule where
class Foo a where
bar :: a
并在另一个模块BModule
导入AModule
限定,并尝试将某些类型设为Foo
的实例,即
module B where
import qualified AModule as A
instance A.Foo Int where
A.bar = 0
GHC告诉我“绑定位置的合格名称:A.bar”。
根据我的理解,这与GHC ticket 3197有关,后者标记为已修复。我正在运行GHC 6.12.1并且仍然出现错误。我只是误解了一些事情吗?
答案 0 :(得分:14)
您不需要实例声明中的A.
(请参阅Haskell 98 report §4.3.2)。
以下编译6.12.3:
instance A.Foo Int where -- # A. here
bar = 0 -- # no A. here
main = print (A.bar :: Int) -- # A. here