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)
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,
| 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
> 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
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
| 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