fixity declaration has form *infix(l|r)? [Digit]* in haskell. I'm pretty
sure, that this is not enough for complicated cases. Ideally, fixity
declarations should have form *infix(l|r)? [Digit](\.(+|-)[Digit])** ,
with implied infinitely long repeated (.0) tail. This will allow fine
tuning of operator priorities and much easier priority selection. For
example, it may be assumed, that bit operations like (.&.) operator have
hightest priority and have priorities like 9.0.1 or 9.0.2, anti-lisps
like ($) have lowest priority like 0.0.1, control operators have base
priority 1.* and logic operations like (&&) have priority of 2.* and it
will be possibly to add new operators between or above all (for example)
control operators without moving fixity of other ones.
Agda2 language supports wide priority range, but still without 'tails'
to my knowledge. Is there any haskell-influenced language or
experimental syntactic extension that address the issue?
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe