Hi, The updated proposal looks good to me! Jakob On Tue, Apr 8, 2025 at 11:00 AM Adam Gundry via ghc-steering-committee < ghc-steering-committee@haskell.org> wrote:
I have now updated this proposal on the basis of the vote:
https://github.com/ghc-proposals/ghc-proposals/pull/668
Please take a look and let me know if you are happy with the current state of the PR, or have any remaining concerns.
Thanks,
Adam
P.S. I will be away on holiday over the next couple of weeks, so apologies in advance for any delays in response.
On 07/04/2025 16:21, Adam Gundry via ghc-steering-committee wrote:
Thanks everyone for your responses to this. There seems to be a fairly clear consensus that the preferred option is B. (5 votes have B in first place, then 3 others either rate A and B equally or weakly prefer A to B.) Thus I plan to revise the proposal accordingly.
Adam
On 02/04/2025 10:26, Matthías Páll Gissurarson via ghc-steering-committee wrote:
I have a slight preference for B over A. The point that [2] brings up is a good one, it seems better to allow row.“foo bar”, especially when reading CSV or JSON as they mention.
So my preference is B>A>C>D
/Matti Palli
On Wed, Apr 2, 2025 at 07:56 Arnaud Spiwack via ghc-steering-committee <ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> wrote:
My preference is A>B>C>D
Though my preference between A and B is weak. Whatever's easier really.
On Thu, 20 Mar 2025 at 19:04, Simon Marlow via ghc-steering-committee <ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> wrote:
I don't feel all that strongly except that C seems like a bad idea. A = B > D > C
Cheers Simon
On Wed, 19 Mar 2025 at 21:49, Adam Gundry via ghc-steering-committee <ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> wrote:
Hi everyone,
This proposal [0] has been lingering for quite some time, unfortunately. So we can make progress, I've tried to summarise our options below; please vote for your preferred option in the next week or two. Once we have decided on our preferred course of action, I'll make any necessary editorial changes to the proposal.
To recap, the idea is to extend OverloadedRecordDot such that it permits record selection expressions such as
foo.type -> getField @"type" foo
even though `type` is a keyword and hence not a valid record field in a traditional datatype declarations. This is primarily motivated by the use of OverloadedRecordDot in libraries such as `persistent` (see [1]), which will generate instances like this:
instance HasField "type" SomeRecord SomeField1 where getField = ...
instance HasField "bar" SomeRecord SomeField2 where getField = ...
Both these instances are accepted, so it is quite surprising and annoying that `foo.type` is a syntax error, even though `foo.bar` will be accepted (and turn into a call to `getField @"bar"`).
As a small syntactic change, the proposal has lead to quite some discussion and a few plausible alternatives:
A. Accept the proposal as it stands, since it is the smallest change that resolves the issue.
B. Extend the proposal to permit still wider syntax, e.g. `foo.Uppercase` or `foo."quoted string"`, motivated by consistency with OverloadedLabels and use cases such as [2]. This seems reasonable to me.
C. Extend the proposal to permit keywords such as `type` to be used as field names in traditional record syntax, e.g. `data Foo = Foo { type :: Int }`. In my view this is unnecessary complexity that mistakenly conflates OverloadedRecordDot with traditional record syntax; the motivation for keywords as selector names comes from uses of OverloadedRecordDot that do not involve traditional record syntax.
D. Reject the proposal entirely, e.g. due to worries about syntax highlighting.
Please reply with your preference order amongst these options. My vote is B > A > C > D.
Thanks,
Adam
[0] https://github.com/ghc-proposals/ghc-proposals/pull/668 <https://github.com/ghc-proposals/ghc-proposals/pull/668>
[1]
https://github.com/ghc-proposals/ghc-proposals/pull/668#issuecomment-2561282... < https://github.com/ghc-proposals/ghc-proposals/pull/668#issuecomment-2561282...
[2]
https://github.com/ghc-proposals/ghc-proposals/pull/668#issuecomment-2564274... < https://github.com/ghc-proposals/ghc-proposals/pull/668#issuecomment-2564274...
On 05/11/2024 13:58, Arnaud Spiwack wrote: > I have no opinion on this. But I've seen two points in the thread which > make sense: Vlad, our guardian of the parser, says that it's a good > idea, and the comparison with OverloadedLabel (made by Vlad and others) > is apt, and the symmetry is desirable. Ideally the comparison with > OverloadedLabel should be made in the Alternatives section, but I don't > feel like insisting about it :) . > > On Sat, 2 Nov 2024 at 21:21, Simon Peyton Jones > <simon.peytonjones@gmail.com <mailto:simon.peytonjones@gmail.com> <mailto:simon.peytonjones@gmail.com <mailto:simon.peytonjones@gmail.com>>> wrote: > > I'm in support too, but I have made some substantive suggestions on > the GitHub ticket that I'd like to see addressed before we tie a bow > on this. > > Simon > > On Sat, 2 Nov 2024 at 09:25, Sebastian Graf <sgraf1337@gmail.com <mailto:sgraf1337@gmail.com> > <mailto:sgraf1337@gmail.com <mailto:sgraf1337@gmail.com>>> wrote: > > I'm in support as well, but would like to see a single > clarifying sentence added to the proposal. >
https://github.com/ghc-proposals/ghc-proposals/pull/668#discussion_r18265330... < https://github.com/ghc-proposals/ghc-proposals/pull/668#discussion_r1826533003> < https://github.com/ghc-proposals/ghc-proposals/pull/668#discussion_r18265330... < https://github.com/ghc-proposals/ghc-proposals/pull/668#discussion_r18265330...
> > Am Sa., 2. Nov. 2024 um 07:29 Uhr schrieb Erik de Castro Lopo > <erikd@mega-nerd.com <mailto:erikd@mega-nerd.com
<mailto:erikd@mega-nerd.com <mailto:erikd@mega-nerd.com>>>: > > > > I am in support. > > Erik > > Matthías Páll Gissurarson wrote: > > > I’m in support. No need to keep reservations longer than > necessary. > > > > /Matti Palli > > > > > > On Fri, Nov 1, 2024 at 23:22 Malte Ott > <malte.ott@maralorn.de <mailto:malte.ott@maralorn.de> <mailto:
malte.ott@maralorn.de
<mailto:malte.ott@maralorn.de>>> wrote: > > > > > > > > On 2024-10-29 20:12, Adam Gundry wrote: > > > > > https://github.com/ghc-proposals/ghc-proposals/pull/668 <https://github.com/ghc-proposals/ghc-proposals/pull/668> > <https://github.com/ghc-proposals/ghc-proposals/pull/668 <https://github.com/ghc-proposals/ghc-proposals/pull/668>> > > > > > > I’m in support. > > > > > > Best > > > Malte > > > _______________________________________________ > > > ghc-steering-committee mailing list > > > ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org> > <mailto:ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> > > > >
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee> <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
> > > > > > -- > ---------------------------------------------------------------------- > Erik de Castro Lopo > http://www.mega-nerd.com/ <http://www.mega-nerd.com/> <http://www.mega-nerd.com/ <http://www.mega-nerd.com/>> > _______________________________________________ > ghc-steering-committee mailing list > ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org> > <mailto:ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> >
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee> <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
> > _______________________________________________ > ghc-steering-committee mailing list > ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org> > <mailto:ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> >
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee> <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
> > _______________________________________________ > ghc-steering-committee mailing list > ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org> > <mailto:ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>> >
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee> <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee <https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
> > > > -- > Arnaud Spiwack > Director, Research at https://moduscreate.com <https://moduscreate.com> <https://moduscreate.com <https://moduscreate.com>> > and https://tweag.io <https://tweag.io> <
<https://tweag.io>>. > > _______________________________________________ > ghc-steering-committee mailing list > ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org> >
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee>
-- Adam Gundry, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/ <https://www.well-typed.com/>
Registered in England & Wales, OC335890 27 Old Gloucester Street, London WC1N 3AX, England
<
https://www.google.com/maps/search/27+Old+Gloucester+Street,+London+WC1N+3AX...
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee>
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee>
-- Arnaud Spiwack Director, Research at https://moduscreate.com <https://moduscreate.com> and https://tweag.io <https://tweag.io>. _______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org <mailto:ghc-steering-committee@haskell.org>
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee < https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee>
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
-- Adam Gundry, Haskell Consultant Well-Typed LLP, https://www.well-typed.com/
Registered in England & Wales, OC335890 27 Old Gloucester Street, London WC1N 3AX, England
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee