Comprendre l'erreur GHC « Nom qualifié en position de liaison »
-
26-09-2019 - |
Question
Si je crée un AModule
de module avec un Foo
de classe de types,
module AModule where
class Foo a where
bar :: a
et dans un autre module BModule
importation AModule
qualifié et essayer de faire un certain type une instance de Foo
, i.e..
module B where
import qualified AModule as A
instance A.Foo Int where
A.bar = 0
GHC me dit. "Nom qualifié en position de reliure: A.bar"
D'après ce que je comprends, cela est lié à billet 3197 GHC, qui est marqué comme fixe. Je suis en GHC 6.12.1 et je reçois toujours l'erreur. Est-ce que je viens de malentendu quelque chose?
La solution
Vous n'avez pas besoin A.
dans la déclaration d'instance (Voir Haskell 98 rapport §4.3.2 ).
Les compiles suivantes 6.12.3:
instance A.Foo Int where -- # A. here
bar = 0 -- # no A. here
main = print (A.bar :: Int) -- # A. here
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow