12

如果我创建一个AModule带有 typeclass的模块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 票 3197相关,它被标记为固定。我正在运行 GHC 6.12.1,但仍然出现错误。我只是在这里误解了一些东西吗?

4

1 回答 1

18

您不需要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
于 2010-10-25T10:04:04.697 回答