Re: haskell operator precedence

1997-03-19 Thread Fergus Henderson
Libor Skarvada, you wrote: > > > > infixr 0 `foo` > > > infixr 0 `bar` > > I do not see any problem here. [...] > But if we mix the associativity like > infixl 0 `foo` > infixr 0 `bar` > then the parsing of the expression above is not unique, and eg. Hugs > complains > ERROR "tmp.hs" (line 7)

haskell operator precedence

1997-03-19 Thread Fergus Henderson
Hi, Is the following legal Haskell? > infixr 0 `foo` > infixr 0 `bar` > > x `foo` y = "foo(" ++ x ++ "," ++ y ++ ")" > x `bar` y = "bar(" ++ x ++ "," ++ y ++ ")" > dubious a b c = a `foo` b `bar` c According to the grammar in the Haskell report, I don't think it is. However, ghc-0.24 (ancient,

Re: haskell operator precedence

1997-03-18 Thread Mark P Jones
| Is the following legal Haskell? | | > infixr 0 `foo` | > infixr 0 `bar` | > ... | > dubious a b c = a `foo` b `bar` c | | According to the grammar in the Haskell report, I don't think it is. | However, ghc-0.24 (ancient, I know) and Hugs 1.3 both accept it without | complaint. I believe that

Re: haskell operator precedence

1997-03-18 Thread Wolfgang Lux
> Hi, > > Is the following legal Haskell? > > > infixr 0 `foo` > > infixr 0 `bar` > > > > x `foo` y = "foo(" ++ x ++ "," ++ y ++ ")" > > x `bar` y = "bar(" ++ x ++ "," ++ y ++ ")" > > dubious a b c = a `foo` b `bar` c > > According to the grammar in the Haskell report, I don't think it is. > H

Re: haskell operator precedence

1997-03-18 Thread Jon Mountjoy
Fergus Henderson writes: > Hi, > > Is the following legal Haskell? > > > infixr 0 `foo` > > infixr 0 `bar` > > > > x `foo` y = "foo(" ++ x ++ "," ++ y ++ ")" > > x `bar` y = "bar(" ++ x ++ "," ++ y ++ ")" > > dubious a b c = a `foo` b `bar` c > > According to the grammar in the Ha

Re: haskell operator precedence

1997-03-18 Thread Simon L Peyton Jones
| However, in return, perhaps somebody can supply me with parse trees for | the following: | | - - 1(accepted by nhc and hbc) | (- 1 `n6` 1) where infix 6 `n6` (accepted by nhc, hbc, ghc) | (- 1 `r6` 1) where infixr 6 `r6` (accepted by nhc, hb