如果我创建模块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票3197 ,该为固定被标记。我运行GHC 6.12.1和我仍然得到错误。我只是误解的东西在这里?

有帮助吗?

解决方案

您不需要实例声明内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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top