开发者

Understanding GHC error "Qualified name in binding position"

开发者 https://www.devze.com 2023-01-22 07:58 出处:网络
If I create a module AModule with a typeclass Foo, module AModule where class Foo a where bar :: a and in another module BModule import AModule qualified and try to make some type an instance of Fo

If I create a module AModule with a typeclass Foo,

module AModule where
class Foo a where
   bar :: a

and in another module BModule import AModule qualified and try to make some type an instance of Foo, i.e.

module B where
import qualified AModule as A
instance A.Foo Int wh开发者_如何学Cere
   A.bar = 0

GHC tells me "Qualified name in binding position: A.bar".

From what I understand, this is related to GHC ticket 3197, which is labeled as fixed. I'm running GHC 6.12.1 and am still getting the error. Am I just misunderstanding something here?


You don't need the A. inside the instance declaration (See Haskell 98 report §4.3.2).

The following compiles on 6.12.3:

instance A.Foo Int where    -- # A. here
   bar = 0                  -- # no A. here

main = print (A.bar :: Int) -- # A. here
0

精彩评论

暂无评论...
验证码 换一张
取 消