Hugs version: Hugs 1.4, The Nottingham and Yale Haskell User's System. Version 970719.

Configuration options: --with-x --disable-large-banner --enable-TREX

Operating System: HP-UX varsovie A.09.05 A 9000/735 2001675185 two-user license

Compiler: gcc version 2.6.3

Expected Behaviour:
Haskell Report 1.4, section 5.6 on fixities: 
"If op is imported as a qualified name from Bar, no conflict may
occur: the fixity of a qualified name does not affect unqualified uses
of the same name."

Observed Behaviour:
In module A, operator $$$'s fixity is declared. If module B redefines
$$$ and its fixity, it cannot import module A, even indirectly, be it
qualified or even _hiding_ operator A.$$$.

Transcript1:
> module Def where
> infix 2 $$$
> x $$$ y = x - y

> module Redef where
> import qualified Def
> infix 8 $$$
> x $$$ y = x:y

->ERROR "Redef.hs" (line 3): Attempt to redefine syntax of operator "$$$"

Transcript2:
Other:
> module RedefHiding where
> import Def hiding (($$$))
> infix 8 $$$
> x $$$ y = x:y

->ERROR "RedefHiding.hs" (line 3): Attempt to redefine syntax of operator "$$$"

Transcript3:
> module DefAlt where
> infix 8 $$$
> x $$$ y = x:y

> module DefBoth where
> import qualified Def hiding (($$$))
> import qualified DefAlt hiding (($$$))

->ERROR "DefAlt.hs" (line 2): Attempt to redefine syntax of operator "$$$"

===============================================================================
Fabrice Lavier          <[EMAIL PROTECTED]>         (514) 345 1644, ext. 317
===============================================================================

Reply via email to