了解GHC错误"绑定位置中的合格名称"

gsp*_*spr 10 haskell compiler-errors ghc

如果我创建一个AModule带类型类的模块Foo,

module AModule where
class Foo a where
   bar :: a
Run Code Online (Sandbox Code Playgroud)

并在另一个模块中BModule导入AModule限定,并尝试使某些类型的实例Foo,即

module B where
import qualified AModule as A
instance A.Foo Int where
   A.bar = 0
Run Code Online (Sandbox Code Playgroud)

GHC告诉我"绑定位置的合格名称:A.bar".

据我所知,这与GHC票3197有关,后者被标记为固定.我正在运行GHC 6.12.1并且仍然出现错误.我只是误解了一些事情吗?

ken*_*ytm 17

您不需要A.实例声明内部(请参阅Haskell 98报告§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
Run Code Online (Sandbox Code Playgroud)