Pergunta

Se eu criar um módulo AModule com um tipo de tipo de Type Foo,

module AModule where
class Foo a where
   bar :: a

E em outro módulo BModule importar AModule qualificado e tente fazer algum tipo uma instância de Foo, ou seja

module B where
import qualified AModule as A
instance A.Foo Int where
   A.bar = 0

O GHC me diz "Nome qualificado na posição de ligação: A.bar".

Pelo que entendi, isso está relacionado a Bilhete de GHC 3197, que é rotulado como fixo. Estou executando o GHC 6.12.1 e ainda estou recebendo o erro. Estou apenas entendendo mal algo aqui?

Foi útil?

Solução

Você não precisa do A. Dentro da declaração de instância (ver Haskell 98 Relatório §4.3.2).

Os seguintes compilam em 6.12.3:

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

main = print (A.bar :: Int) -- # A. here
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top