[Haskell] how can I refer to a symbol in a module that is imported
'qualified'?
Anton van Straaten
anton at appsolutions.com
Sat Apr 11 22:34:54 EDT 2009
Norman Ramsey wrote:
> I need to resolve 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 (as indeed the Haskell 98
> report says it should not).
>
> How can I refer to a symbolic name defined in a module imported by
> `import qualified`?
This works:
three = (T.<*>)
Anton
More information about the Haskell
mailing list