I’ve got a name clash between two different Haskell modules that want to use the same infix operator (<*>). The Haskell 98 report says that
modid.varsym
is permitted, but I can’t get it to work. In their entirety here are Test.hs:
module Test where import qualified Test2 as T three = T.<*>
and Test2.hs:
module Test2 where (<*>) = 3
But trying to compile results in an error message:
Test.hs:6:12: parse error on input `T.<*>'
I tried T.(<*>) but that doesn’t work either.
How can I refer to a symbolic name defined in a module imported by import qualified?
try
It’s weird to define an infix operator as an integer. Let’s consider
\\(the set difference operator):As you can see above,
L.\\is a qualified infix operator; and it still works as an infix operator. To use it as a value, you put parentheses around the whole thing.