Pregunta

Si creo un AModule módulo con un Foo clase de tipos,

module AModule where
class Foo a where
   bar :: a

y en otro módulo BModule AModule importación cualificado y tratar de hacer algún tipo de una instancia de Foo, es decir.

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

GHC me dice "Nombre calificado en posición de encuadernación: A.bar".

Por lo que entiendo, esto está relacionado con GHC billete 3197, que se etiqueta como fijo. Estoy corriendo GHC 6.12.1 y todavía estoy recibiendo el error. ¿Estoy mal entendido algo?

¿Fue útil?

Solución

no es necesario el A. dentro de la declaración de la instancia (Ver Haskell informe 98 §4.3.2 ).

Los siguientes compila en 6.12.3:

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

main = print (A.bar :: Int) -- # A. here
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top