Please review #285: -XNoImplicitForAll, Shepherd: Simon Marlow

Dear Committee, this is your secretary speaking: -XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285 https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa... I propose Simon Marlow as the shepherd. Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you. Thanks, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

Proposal #285: https://github.com/ghc-proposals/ghc-proposals/pull/285 suggests two new LANGUAGE pragmas -XNoImplicitForall and -XNoPatternSignatureBinds. They have the effect of making a subset of existing programs illegal, and in that sense I don't think these are problematic. The intention is that these would be used with ExplicitForalls to enforce that all identifiers have explicit binding sites. I'm generally supportive of that. However I think we should be wary of the potential future direction, mentioned in the proposal:
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an
enclosing scope. This would be a language *change*, not merely an addition
or subtraction, and hence potentially fork-like. So we would want to
consider very carefully whether that's the direction we want to take the
language.
But since that isn't part of the current proposal, and the current proposal
is merely an optional subtraction, I don't think it's controversial.
Cheers
Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner
Dear Committee,
this is your secretary speaking:
-XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285
https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa...
I propose Simon Marlow as the shepherd.
Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you.
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

I've left comments on the Github thread.
I'm rather sympathetic to this idea. I personally think that the implicit
binding rules that we have in place are a bit messy, so simply turning them
off may be of help.
My Github comments raise two points:
- The proposal is a tad challenging to read, and I'd like some improvements
before acceptance be considered
- I'm questioning whether we really want two extensions for these two very
related behaviours
On Mon, Nov 11, 2019 at 10:44 AM Simon Marlow
Proposal #285:
https://github.com/ghc-proposals/ghc-proposals/pull/285
suggests two new LANGUAGE pragmas -XNoImplicitForall and -XNoPatternSignatureBinds.
They have the effect of making a subset of existing programs illegal, and in that sense I don't think these are problematic. The intention is that these would be used with ExplicitForalls to enforce that all identifiers have explicit binding sites. I'm generally supportive of that.
However I think we should be wary of the potential future direction, mentioned in the proposal:
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an enclosing scope. This would be a language *change*, not merely an addition or subtraction, and hence potentially fork-like. So we would want to consider very carefully whether that's the direction we want to take the language.
But since that isn't part of the current proposal, and the current proposal is merely an optional subtraction, I don't think it's controversial.
Cheers Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner
wrote: Dear Committee,
this is your secretary speaking:
-XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285
https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa...
I propose Simon Marlow as the shepherd.
Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you.
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'm largely in agreement with Arnaud here.
On Wed, Nov 13, 2019 at 1:59 AM Spiwack, Arnaud
I've left comments on the Github thread.
I'm rather sympathetic to this idea. I personally think that the implicit binding rules that we have in place are a bit messy, so simply turning them off may be of help.
My Github comments raise two points:
- The proposal is a tad challenging to read, and I'd like some improvements before acceptance be considered - I'm questioning whether we really want two extensions for these two very related behaviours
On Mon, Nov 11, 2019 at 10:44 AM Simon Marlow
wrote: Proposal #285:
https://github.com/ghc-proposals/ghc-proposals/pull/285
suggests two new LANGUAGE pragmas -XNoImplicitForall and -XNoPatternSignatureBinds.
They have the effect of making a subset of existing programs illegal, and in that sense I don't think these are problematic. The intention is that these would be used with ExplicitForalls to enforce that all identifiers have explicit binding sites. I'm generally supportive of that.
However I think we should be wary of the potential future direction, mentioned in the proposal:
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an enclosing scope. This would be a language *change*, not merely an addition or subtraction, and hence potentially fork-like. So we would want to consider very carefully whether that's the direction we want to take the language.
But since that isn't part of the current proposal, and the current proposal is merely an optional subtraction, I don't think it's controversial.
Cheers Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner
wrote: Dear Committee,
this is your secretary speaking:
-XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285
https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa...
I propose Simon Marlow as the shepherd.
Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you.
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
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
-- I'm currently travelling the world, sleeping on people's couches and doing full-time collaboration on Haskell projects. If this seems interesting to you, please consider signing up as a host! https://isovector.github.io/erdos/

Dear committee:
Proposal #285 is currently under consideration:
https://github.com/ghc-proposals/ghc-proposals/pull/285
I previously recommended acceptance, and there was some followup discussion
on the GitHub thread where Simon PJ and Arnaud requested changes. The
changes, namely clarifications and more examples, have all been implemented
and those that requested changes have signed off.
I think we can accept the proposal now. Any final concerns?
Cheers
Simon
On Wed, 13 Nov 2019 at 01:18, Sandy Maguire
I'm largely in agreement with Arnaud here.
On Wed, Nov 13, 2019 at 1:59 AM Spiwack, Arnaud
wrote: I've left comments on the Github thread.
I'm rather sympathetic to this idea. I personally think that the implicit binding rules that we have in place are a bit messy, so simply turning them off may be of help.
My Github comments raise two points:
- The proposal is a tad challenging to read, and I'd like some improvements before acceptance be considered - I'm questioning whether we really want two extensions for these two very related behaviours
On Mon, Nov 11, 2019 at 10:44 AM Simon Marlow
wrote: Proposal #285:
https://github.com/ghc-proposals/ghc-proposals/pull/285
suggests two new LANGUAGE pragmas -XNoImplicitForall and -XNoPatternSignatureBinds.
They have the effect of making a subset of existing programs illegal, and in that sense I don't think these are problematic. The intention is that these would be used with ExplicitForalls to enforce that all identifiers have explicit binding sites. I'm generally supportive of that.
However I think we should be wary of the potential future direction, mentioned in the proposal:
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an enclosing scope. This would be a language *change*, not merely an addition or subtraction, and hence potentially fork-like. So we would want to consider very carefully whether that's the direction we want to take the language.
But since that isn't part of the current proposal, and the current proposal is merely an optional subtraction, I don't think it's controversial.
Cheers Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner
wrote: Dear Committee,
this is your secretary speaking:
-XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285
https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa...
I propose Simon Marlow as the shepherd.
Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you.
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
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
-- I'm currently travelling the world, sleeping on people's couches and doing full-time collaboration on Haskell projects. If this seems interesting to you, please consider signing up as a host! https://isovector.github.io/erdos/

I support it.
Simon
From: ghc-steering-committee
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an enclosing scope. This would be a language *change*, not merely an addition or subtraction, and hence potentially fork-like. So we would want to consider very carefully whether that's the direction we want to take the language.
But since that isn't part of the current proposal, and the current proposal is merely an optional subtraction, I don't think it's controversial.
Cheers
Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner

I'm still not convinced about the fact that there are two extensions for
this. Which seems more motivated by technical details of the
implementation, rather than by semantics. But it is not a hill that I'm
willing to die on… so if I'm alone in this, I'm not going to argue further.
/Arnaud
On Mon, Jan 20, 2020 at 4:46 PM Simon Peyton Jones via
ghc-steering-committee
I support it.
Simon
*From:* ghc-steering-committee
*On Behalf Of *Simon Marlow *Sent:* 20 January 2020 08:37 *To:* Sandy Maguire *Cc:* ghc-steering-committee@haskell.org; Joachim Breitner < mail@joachim-breitner.de> *Subject:* Re: [ghc-steering-committee] #285: -XNoImplicitForAll, recommendation: accept Dear committee:
Proposal #285 is currently under consideration: https://github.com/ghc-proposals/ghc-proposals/pull/285 https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fghc-proposals%2Fghc-proposals%2Fpull%2F285&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760511549&sdata=viFsM%2FAfs61mWTEzPUkQ48PLfj%2FBEbBoSXOUn1WPkwM%3D&reserved=0
I previously recommended acceptance, and there was some followup discussion on the GitHub thread where Simon PJ and Arnaud requested changes. The changes, namely clarifications and more examples, have all been implemented and those that requested changes have signed off.
I think we can accept the proposal now. Any final concerns?
Cheers
Simon
On Wed, 13 Nov 2019 at 01:18, Sandy Maguire
wrote: I'm largely in agreement with Arnaud here.
On Wed, Nov 13, 2019 at 1:59 AM Spiwack, Arnaud
wrote: I've left comments on the Github thread.
I'm rather sympathetic to this idea. I personally think that the implicit binding rules that we have in place are a bit messy, so simply turning them off may be of help.
My Github comments raise two points:
- The proposal is a tad challenging to read, and I'd like some improvements before acceptance be considered
- I'm questioning whether we really want two extensions for these two very related behaviours
On Mon, Nov 11, 2019 at 10:44 AM Simon Marlow
wrote: Proposal #285:
https://github.com/ghc-proposals/ghc-proposals/pull/285 https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fghc-proposals%2Fghc-proposals%2Fpull%2F285&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760511549&sdata=viFsM%2FAfs61mWTEzPUkQ48PLfj%2FBEbBoSXOUn1WPkwM%3D&reserved=0
suggests two new LANGUAGE pragmas -XNoImplicitForall and -XNoPatternSignatureBinds.
They have the effect of making a subset of existing programs illegal, and in that sense I don't think these are problematic. The intention is that these would be used with ExplicitForalls to enforce that all identifiers have explicit binding sites. I'm generally supportive of that.
However I think we should be wary of the potential future direction, mentioned in the proposal:
As described in the motivation, this opens the door to other means to bind the previously implicitly bound variables.
i.e. an unbound name in a type could refer to a type variable bound in an enclosing scope. This would be a language *change*, not merely an addition or subtraction, and hence potentially fork-like. So we would want to consider very carefully whether that's the direction we want to take the language.
But since that isn't part of the current proposal, and the current proposal is merely an optional subtraction, I don't think it's controversial.
Cheers
Simon
On Thu, 7 Nov 2019 at 09:29, Joachim Breitner
wrote: Dear Committee,
this is your secretary speaking:
-XNoImplicitForAll has been proposed by John Ericson https://github.com/ghc-proposals/ghc-proposals/pull/285 https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fghc-proposals%2Fghc-proposals%2Fpull%2F285&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760521544&sdata=ejc%2FJIQfLnuiBFjxOIWJlYeO8BeGZXowfE8x7T6zEaY%3D&reserved=0
https://github.com/Ericson2314/ghc-proposals/blob/no-implicit-forall/proposa... https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FEricson2314%2Fghc-proposals%2Fblob%2Fno-implicit-forall%2Fproposals%2F0000-no-implicit-forall.rst&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760521544&sdata=iWi%2Bzg3qDTF6OMdAQS2Hri%2Br9pMjpKLdN4Ua2NpmPwE%3D&reserved=0
I propose Simon Marlow as the shepherd.
Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fghc-proposals%2Fghc-proposals%23committee-process&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760531535&sdata=Gfhz1Ed37fTO9yPAa06MGi0xDwDm0eiHMXuvzKSt%2BhM%3D&reserved=0 I suggest you make a recommendation, in a new e-mail thread with the proposal number in the subject, about the decision, maybe point out debatable points, and assume that anyone who stays quiet agrees with you.
Thanks, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/ https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.joachim-breitner.de%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760531535&sdata=9D8Dc0ssSdOJQ%2BZeZDEGdH%2FblHCxGupgA%2FJSdYhufMQ%3D&reserved=0
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committee&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760531535&sdata=2a6%2FP1ED6XTXeQo0wZZAVTZtV29uQ9ODX0dBLh%2BvrFo%3D&reserved=0
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committee&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760541531&sdata=5%2Foe2KhonSKfa5jPmjVm8%2FCkWtSU5Qom534GWn%2Fb7LA%3D&reserved=0
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-committee&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760541531&sdata=5%2Foe2KhonSKfa5jPmjVm8%2FCkWtSU5Qom534GWn%2Fb7LA%3D&reserved=0
--
I'm currently travelling the world, sleeping on people's couches and doing full-time collaboration on Haskell projects. If this seems interesting to you, please consider signing up as a host! https://isovector.github.io/erdos/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fisovector.github.io%2Ferdos%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C7b34ece5aaca4bf1061808d79d840b1c%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637151062760551523&sdata=T5V%2FuhomK2C6trPiDNHxA4hb71jX%2BPT9NG%2FCxpEvqjY%3D&reserved=0
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

Hi, Am Montag, den 20.01.2020, 08:37 +0000 schrieb Simon Marlow:
Proposal #285 is currently under consideration: https://github.com/ghc-proposals/ghc-proposals/pull/285
I previously recommended acceptance, and there was some followup discussion on the GitHub thread where Simon PJ and Arnaud requested changes. The changes, namely clarifications and more examples, have all been implemented and those that requested changes have signed off.
I think we can accept the proposal now. Any final concerns?
looks like this never happened, and Arnaud was the last to comment, and said “if I'm alone in this, I'm not going to argue further.”. Simon M, if you tell me so, I’ll merge it as accepted. Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

I think it's good to go.
Simon
| -----Original Message-----
| From: ghc-steering-committee

Hi, great, merged. Cheers, Joachim Am Montag, den 04.05.2020, 11:31 +0000 schrieb Simon Peyton Jones via ghc-steering-committee:
I think it's good to go.
Simon
-----Original Message----- From: ghc-steering-committee
On Behalf Of Joachim Breitner Sent: 03 May 2020 12:22 To: ghc-steering-committee@haskell.org Subject: Re: [ghc-steering-committee] #285: -XNoImplicitForAll, recommendation: accept Hi,
Am Montag, den 20.01.2020, 08:37 +0000 schrieb Simon Marlow:
Proposal #285 is currently under consideration: https://github.com/ghc-proposals/ghc-proposals/pull/285
I previously recommended acceptance, and there was some followup discussion on the GitHub thread where Simon PJ and Arnaud requested changes. The changes, namely clarifications and more examples, have all been implemented and those that requested changes have signed off.
I think we can accept the proposal now. Any final concerns?
looks like this never happened, and Arnaud was the last to comment, and said “if I'm alone in this, I'm not going to argue further.”.
Simon M, if you tell me so, I’ll merge it as accepted.
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
ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
participants (5)
-
Joachim Breitner
-
Sandy Maguire
-
Simon Marlow
-
Simon Peyton Jones
-
Spiwack, Arnaud