Domanda

Se creo un AModule modulo con un Foo typeclass,

module AModule where
class Foo a where
   bar :: a

e in un altro modulo BModule importazione AModule qualificato e provare a fare un certo tipo di un'istanza di Foo, cioè.

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

GHC mi dice "nome qualificato in posizione di rilegatura: A.bar".

Da quello che ho capito, questo è legato alla GHC biglietto 3197 , che è etichettato come fisso. Io corro GHC 6.12.1 e sto ancora ottenere l'errore. Sto solo malinteso qualcosa qui?

È stato utile?

Soluzione

Non è necessario il A. all'interno della dichiarazione di istanza (Vedere Haskell 98 RELAZIONE §4.3.2 ).

I seguenti compila in 6.12.3:

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

main = print (A.bar :: Int) -- # A. here
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top