Verständnis GHC Fehler „Qualified Name in Bindungsposition“
-
26-09-2019 - |
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?
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