prefix minus and infix resolution

Christian Maeder Christian.Maeder at
Wed Jul 14 06:01:45 EDT 2010

Malcolm Wallace schrieb:
>> I'm asking for support of:
> Just to note that nhc98 appears to fulfill the outcome of this
> resolution algorithm already, with the exception of example x7, which is
> parsed as -(4#5).

Because it seems to (unnecessarily) check if the operator # is
left-associative. I assume that for "infixr 6 #" the term "-4 # 5 # 6"
is resolved as "-(4 # (5 # 6))" (like it would be for "^").

How can I try out nhc98? My old installation is broken and
refers to no implementation. Is Yhc the compiler I should try?

> However, nhc98 goes further and permits the declaration of arbitrary
> prefix operators, using the syntax
>     prefix negate 6 -

yes, this is a nice extension.

> yes, in addition to
>     infix 6 -
> I think the rationale is that the prefix symbol must map to a
> non-symbolic function name, because the same symbol may also refer to a
> function of a different type when used infix. 

Currently there is no haskell way to _define_ a prefix operator
therefore prefix minus is bound to negate explicitly as above (nhc98) or
implicitly built-in (ghc and hugs).

Prefix- and Infix-usage can be distinguished by the lexer:

  - a ... -> prefix

  a - ... -> infix

Furthermore, prefix minus can not be qualified (bug or feature?).

Prelude.- only refers to the infix version and "Prelude.- 1" is rejected
(by ghc and hugs).

Cheers Christian

More information about the Haskell-prime mailing list