[Haskell-cafe] Fixity declaration extension

Евгений Пермяков permeakra at gmail.com
Sun Aug 12 20:46:37 CEST 2012


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?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20120812/2b9353bf/attachment.htm>


More information about the Haskell-Cafe mailing list