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?