<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Nov 4, 2015 at 2:41 PM Dan Burton <<a href="mailto:danburton.email@gmail.com">danburton.email@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">+1, it's no worse than module syntax, and it's opt-in.<div><br></div><div>I suppose my vote bumps it up from -1000 to -999. /shrug</div><div><br></div><div>Dot as postfix function application is frankly a great idea that exists in many many languages. It's great for intellisense and it's often great for reading code left to right.<span></span> It may not be the best fit for Haskell, but Haskell has never been one of those "one right way to code" sort of languages.</div></div></blockquote><div><br></div><div>This isn't about dot as postfix function application. You can already do that:</div><div><br></div><div>import Prelude hiding ((.))</div><div><br></div><div>a . f = f a</div><div><br></div><div>main = 23 . print</div><div><br></div><div>This is about changing the syntax of the language to make it more comfortable to people coming from OO languages, in particular mimicking the way most of those languages select features from an object. The syntax change is making dot without spaces bind tighter than function application so you can say "print object.element" instead of having to say print (element object)" or "print $ element object".</div><div><br></div><div>Alexander Berntsen suggested adding a new fixity so you could declare operators that bind tighter than function application. That would let you write "print object . element" by declaring the fixity of "." to be that new fixity. Since such a change doesn't break any existing code, it doesn't need to be an extension that's enabled. It's a need I've felt every so often myself.</div><div><br></div><div>-1. Once you get past wanting to write OO code in Haskell, this itch should go away. I think it would be like all the "OO in haskell" libraries that newcomers write, then quit using once they get past that desire.</div><div><br></div><div>At the very least, make this a general change, so that name<op>name without spaces binds tighter than functions, so it's useful for more than writing code that looks like Pyhton/C/C++/etc.</div></div></div>