Henning Thielemann wrote:
On Wed, 27 Sep 2006, Brian Hulley wrote:
       ith = Data.Array.IArray.(!)

This cool editor is able to show a list of functions with the given
qualification but is not able to enclose the qualified identifier in
parentheses?

I hadn't thought of that...

I don't think that it is a good idea to move the
qualification away from the qualified identifier. The parentheses
around the infix operator are a special case of sections. With the
proposed syntactic change, we would have two meanings of parentheses:
Section and making an infix operator prefix. One can also mix up
 Data.Array.IArray.(!)
   more easily with function composition
 Data.Array.IArray . (!)
   if Data.Array.IArray is also a constructor.

Yes this problem was at the back of my mind. I think I'm coming round to the view that the original syntax is actually better after all. It also turns out that it's rather difficult to deal with Data.Array.IArray.(+) at the lexical level because there are 3 different ways in which this can be incomplete eg:

   Data.IArray.Array.
   Data.IArray.Array.(
   Data.IArray.Array.(+

leading either to too many different tokens to represent the above variations or else a very heavyweight token with many fields.

I had originally thought it would be easier to have (+) and `div` as lexemes so that it would be easier to parse expressions involving operators in the CFG, but as long as http://hackage.haskell.org/trac/haskell-prime/wiki/FixityResolution is accepted, this reason will disappear.

Thanks for the good justification of the existing syntax,
Brian.
--
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.

http://www.metamilk.com
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to