Entendendo o erro do GHC “Nome qualificado na posição de ligação”
-
26-09-2019 - |
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?
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