On Sun, Nov 29, 2020 at 12:40 PM Simon Marlow <marlowsd@gmail.com> wrote:
On Wed, 25 Nov 2020 at 11:21, Spiwack, Arnaud <arnaud.spiwack@tweag.io> wrote:
PostfixOperators: maybe

I'd like to make a case for this extension, on the grounds that it's a complete no-brainer.

The name "PostfixOperators" makes it sound a lot more scary than it actually is. In fact it's just a tiny generalisation to the definition of left sections. You could almost regard it as a typo in the Haskell report - if it had been noticed that this rule was unnecessarily restrictive, I'm fairly sure it would have been fixed at the time.


It took me several readings to understand what this extension does, to be honest. I agree now, I'll change my vote.

On Sun, Nov 29, 2020 at 9:14 PM Alejandro Serrano Mena <trupill@gmail.com> wrote:


El dom, 29 nov 2020 a las 12:12, Simon Marlow (<marlowsd@gmail.com>) escribió:
On Wed, 25 Nov 2020 at 11:21, Spiwack, Arnaud <arnaud.spiwack@tweag.io> wrote:

## OverloadedX

These extensions can confuse type inference, yielding ambiguous type
variables message. And as much as I like them, I don't think it's safe
to include them yet. Not until we have a reasonable story for
defaulting literals.

OverloadedLabels: no
OverloadedLists: no
OverloadedStrings: no

For what it's worth, I've been writing code with OverloadedStrings for several years now and in my experience it rarely causes a problem, even for beginners. The context almost always provides enough information to resolve the ambiguity. (admittedly I'm slightly surprised by this too, but experience has convinced me)

I don't have much experience with OverloadedLists, but I'd be prepared to believe that it's a similar story there too.

Adding to this, I think that both OverloadedStrings and OverloadedLists go very well with the idea of overloaded literals story that Haskell already has for numbers.

On principle, I very much agree. In fact I almost always turn both OverloadedStrings and OverloadedList on. But it also almost always causes some type errors when I turn them on (well, ambiguity errors). Therefore, I'm a bit dubious at the idea of making them the default. Even though Alejandro's point is undeniable.