Понимание ошибки GHC «Квалифицированное имя в положении связывания»
-
26-09-2019 - |
Вопрос
Если я создаю модуль AModule
с типом Foo
,
module AModule where
class Foo a where
bar :: a
и в другом модуле BModule
импорт AModule
квалифицировано и попытаться сделать какой-то тип экземпляра Foo
, т.е.
module B where
import qualified AModule as A
instance A.Foo Int where
A.bar = 0
GHC говорит мне «Квалифицированное имя в положении связывания: A.Bar».
Из того, что я понимаю, это связано с ГХК Билет 3197., который обозначен как исправлено. Я запускаю GHC 6.12.1 и все еще получаю ошибку. Я просто не понимаю что-то здесь?
Решение
Вам не нужно A.
внутри объявления экземпляра (см. Haskell 98 Сообщение §4.3.2).
Следующие компиляции на 6.12.3:
instance A.Foo Int where -- # A. here
bar = 0 -- # no A. here
main = print (A.bar :: Int) -- # A. here
Не связан с StackOverflow