У меня есть столкновение имен между двумя разными модулями Haskell, которые хотят использовать один и тот же инфиксный оператор (<*>
). В докладе Haskell 98 говорится, чтоКак написать квалифицированное имя символа в Haskell?
modid.varsym
разрешено, но я не могу заставить его работать. В полном объеме здесь Test.hs
:
module Test
where
import qualified Test2 as T
three = T.<*>
и Test2.hs
:
module Test2
where
(<*>) = 3
Но попытка обобщить результаты в сообщении об ошибке:
Test.hs:6:12: parse error on input `T.<*>'
Я попытался T.(<*>)
, но это не работает или.
Как я могу ссылаться на символическое имя, определенное в модуле, импортированном import qualified
?
Weird на самом деле, но я пытался сделать пример как можно более простым. –