This is a known bug in Hugs. To quote http://haskell.org/hugs/bugs.html:
Fixities are global instead of localized in each module. The same name
cannot be associated with more than one fixity even if the names are
in different modules.
The only people who seem to run into this problem are yourself and Conal
Elliott. I know Conal hit it because he was defining a CSP-like
event choice operator and I'd guess the same is true for you.
Alastair
> There appears to be a problem in the way hugs loads infix operators. I
> tried the following program:
>
> -----------
> module Test where
>
> import Word (intToWord32,Word32)
>
> infixr 2 .|.
>
> (.|.) :: Int -> Int -> Word32
> x .|. y = intToWord32 (x + y)
>
> -----------
>
> It failed with
>
> Hugs session for:
> D:\meurig\hugs971106\hugs\lib\Prelude.hs
> Type :? for help
> Prelude>
> Reading file "d:\meurig\hugswork\test.hs":
> Reading file "D:\meurig\hugs971106\hugs\lib\exts\Word.hs":
> Reading file "D:\meurig\hugs971106\hugs\lib\exts\Bits.hs":
> Reading file "D:\meurig\hugs971106\hugs\lib\exts\Int.hs":
> Reading file "D:\meurig\hugs971106\hugs\lib\exts\Word.hs":
> Reading file "d:\meurig\hugswork\test.hs":
> Parsing
> ERROR "d:\meurig\hugswork\test.hs" (line 5): Attempt to redefine syntax
> of operator ".|."
>
> .|. is provided by Bits.hs but I explicitly don't import it.
>
> Cheers
> Meurig
>
> --
> Meurig Sage
> Dept of Computing Science
> University of Glasgow
> http://www.dcs.gla.ac.uk/~meurig
> mailto:[EMAIL PROTECTED]