Frage

Wenn ich eine Modul AModule mit einem typeclass Foo,

module AModule where
class Foo a where
   bar :: a

und in einem anderen Modul BModule Import AModule qualifizierte und versuchen, irgendeine Art eine Instanz von Foo zu machen, d.

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

GHC sagt mir "Qualified Name in Bindungsposition: A.bar".

Von dem, was ich verstehe, ist dies im Zusammenhang mit GHC Ticket 3197 , die so befestigt ist, gekennzeichnet. Ich bin mit GHC 6.12.1 und bin immer noch den Fehler. Bin ich hier etwas nur Missverständnis?

War es hilfreich?

Lösung

Sie brauchen nicht auf die A. innerhalb der Instanzdeklaration (Siehe Haskell 98 Report 4.3.2 ).

Die folgende compiliert auf 6.12.3:

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

main = print (A.bar :: Int) -- # A. here
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top