Please review #496: Nothing {}, Shepherd: Eric

Dear Committee, Empty records with {} have been proposed by John Ericsson https://github.com/ghc-proposals/ghc-proposals/pull/496 https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro... This seems to be about straightening a corner case, so to say. I suggest Eric as the shepherd. Please guide us to a conclusion as outlined in https://github.com/ghc-proposals/ghc-proposals#committee-process Thanks, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

Dear Committee, This proposal notes an inconsistency around record wildcard syntax where the wildcard selector/binder cannot be used with nullary record constructors. In other words ``` data Foo = Foo {} x = Foo {..} ``` is rejected with the error Illegal `..' notation for constructor ‘Bar’ The constructor has no labelled fields John notes that this is unnecessary friction that also causes grief for code generators. The proposal is to allow the use of record wildcard syntax with nullary constructors. Notably the proposal suggests allowing wildcard syntax with both nullary *records* and nullary positional data constructors, ie both of the following would be allowed. ``` data Foo = Foo {} data Foo = Foo x = Foo {..} ``` I noted on GitHub that this leaves a small asymmetry[1], but I still recommend accepting the proposal as is. As usual, please discuss the proposal's merits in this thread, and the technical details on GitHub. [1]: https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153221... Eric On Mon, May 30, 2022, at 09:28, Joachim Breitner wrote:
Dear Committee,
Empty records with {} have been proposed by John Ericsson
https://github.com/ghc-proposals/ghc-proposals/pull/496 https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro...
This seems to be about straightening a corner case, so to say. I suggest Eric as the shepherd.
Please guide us to a conclusion as outlined in https://github.com/ghc-proposals/ghc-proposals#committee-process
Thanks, Joachim
-- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

Hi, Am Sonntag, dem 12.06.2022 um 12:19 -0400 schrieb Eric Seidel:
but I still recommend accepting the proposal as is.
I support that. It doesn’t seem to hurt allowing it in hand-written code, and if people generating code have an easier time this way, then yes, let’s do this. Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

I agree. This sounds all very reasonable.
On Mon, Jun 13, 2022 at 12:22 AM Joachim Breitner
Hi,
Am Sonntag, dem 12.06.2022 um 12:19 -0400 schrieb Eric Seidel:
but I still recommend accepting the proposal as is.
I support that. It doesn’t seem to hurt allowing it in hand-written code, and if people generating code have an easier time this way, then yes, let’s do this.
Cheers, Joachim
-- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

LGTM
On Sun, 12 Jun 2022 at 17:19, Eric Seidel
Dear Committee,
This proposal notes an inconsistency around record wildcard syntax where the wildcard selector/binder cannot be used with nullary record constructors. In other words
``` data Foo = Foo {}
x = Foo {..} ```
is rejected with the error
Illegal `..' notation for constructor ‘Bar’ The constructor has no labelled fields
John notes that this is unnecessary friction that also causes grief for code generators.
The proposal is to allow the use of record wildcard syntax with nullary constructors. Notably the proposal suggests allowing wildcard syntax with both nullary *records* and nullary positional data constructors, ie both of the following would be allowed.
``` data Foo = Foo {} data Foo = Foo
x = Foo {..} ```
I noted on GitHub that this leaves a small asymmetry[1], but I still recommend accepting the proposal as is.
As usual, please discuss the proposal's merits in this thread, and the technical details on GitHub.
[1]: https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153221...
Eric
On Mon, May 30, 2022, at 09:28, Joachim Breitner wrote:
Dear Committee,
Empty records with {} have been proposed by John Ericsson
https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro...
This seems to be about straightening a corner case, so to say. I suggest Eric as the shepherd.
Please guide us to a conclusion as outlined in https://github.com/ghc-proposals/ghc-proposals#committee-process
Thanks, Joachim
-- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org 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

As I say on the proposal thread, I'm in favour.
I do want John to fix the bug in the text
https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153303...
though.
Simon
On Sun, 12 Jun 2022 at 17:19, Eric Seidel
Dear Committee,
This proposal notes an inconsistency around record wildcard syntax where the wildcard selector/binder cannot be used with nullary record constructors. In other words
``` data Foo = Foo {}
x = Foo {..} ```
is rejected with the error
Illegal `..' notation for constructor ‘Bar’ The constructor has no labelled fields
John notes that this is unnecessary friction that also causes grief for code generators.
The proposal is to allow the use of record wildcard syntax with nullary constructors. Notably the proposal suggests allowing wildcard syntax with both nullary *records* and nullary positional data constructors, ie both of the following would be allowed.
``` data Foo = Foo {} data Foo = Foo
x = Foo {..} ```
I noted on GitHub that this leaves a small asymmetry[1], but I still recommend accepting the proposal as is.
As usual, please discuss the proposal's merits in this thread, and the technical details on GitHub.
[1]: https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153221...
Eric
On Mon, May 30, 2022, at 09:28, Joachim Breitner wrote:
Dear Committee,
Empty records with {} have been proposed by John Ericsson
https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro...
This seems to be about straightening a corner case, so to say. I suggest Eric as the shepherd.
Please guide us to a conclusion as outlined in https://github.com/ghc-proposals/ghc-proposals#committee-process
Thanks, Joachim
-- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org 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

I've been away, but I just wanted to chime in that I'm in support. Richard
On Jun 24, 2022, at 6:29 AM, Simon Peyton Jones
wrote: As I say on the proposal thread, I'm in favour.
I do want John to fix the bug in the text https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153303...though.
Simon
On Sun, 12 Jun 2022 at 17:19, Eric Seidel
mailto:eric@seidel.io> wrote: Dear Committee, This proposal notes an inconsistency around record wildcard syntax where the wildcard selector/binder cannot be used with nullary record constructors. In other words
``` data Foo = Foo {}
x = Foo {..} ```
is rejected with the error
Illegal `..' notation for constructor ‘Bar’ The constructor has no labelled fields
John notes that this is unnecessary friction that also causes grief for code generators.
The proposal is to allow the use of record wildcard syntax with nullary constructors. Notably the proposal suggests allowing wildcard syntax with both nullary *records* and nullary positional data constructors, ie both of the following would be allowed.
``` data Foo = Foo {} data Foo = Foo
x = Foo {..} ```
I noted on GitHub that this leaves a small asymmetry[1], but I still recommend accepting the proposal as is.
As usual, please discuss the proposal's merits in this thread, and the technical details on GitHub.
[1]: https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153221... https://github.com/ghc-proposals/ghc-proposals/pull/496#issuecomment-1153221...
Eric
On Mon, May 30, 2022, at 09:28, Joachim Breitner wrote:
Dear Committee,
Empty records with {} have been proposed by John Ericsson
https://github.com/ghc-proposals/ghc-proposals/pull/496 https://github.com/ghc-proposals/ghc-proposals/pull/496 https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro... https://github.com/Ericson2314/ghc-proposals/blob/empty-record-wildcards/pro...
This seems to be about straightening a corner case, so to say. I suggest Eric as the shepherd.
Please guide us to a conclusion as outlined in https://github.com/ghc-proposals/ghc-proposals#committee-process https://github.com/ghc-proposals/ghc-proposals#committee-process
Thanks, Joachim
-- Joachim Breitner mail@joachim-breitner.de mailto:mail@joachim-breitner.de http://www.joachim-breitner.de/ http://www.joachim-breitner.de/
_______________________________________________ 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 _______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
participants (6)
-
Eric Seidel
-
Joachim Breitner
-
Richard Eisenberg
-
Simon Marlow
-
Simon Peyton Jones
-
Spiwack, Arnaud