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?

Était-ce utile?

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
scroll top