Treat kind and type vars identically with `forall` #103

Dear GHC steering committee I strongly propose that we accept Treat kind and type vars identically with `forall` #103 https://github.com/ghc-proposals/ghc-proposals/pull/103 It makes our design much more simple and uniform - both in the specification and in the implementation. The current setup is a terrible dogs breakfast. Moreover, I propose that we adopt it without a 3-release wait after #83 - see under Alternatives. Any programs that are rejected by #103 can be fixed by adding some extra forall k's. And that change will be accepted NOW if you add -XTypeInType. Simon

On Mar 22, 2018, at 11:15 AM, Simon Peyton Jones
wrote: Dear GHC steering committee
I strongly propose that we accept
Treat kind and type vars identically with `forall` #103
Agreed, unsurprisingly.
Moreover, I propose that we adopt it without a 3-release wait after #83 – see under Alternatives. Any programs that are rejected by #103 can be fixed by adding some extra forall k’s. And that change will be accepted NOW if you add -XTypeInType.
Here I disagree. Enabling -XTypeInType has two unfortunate knock-on effects: - * is no longer available in kinds, without import Data.Kind. Happily, GHC gives a good error message upon a forgotten `import Data.Kind`, so this isn't so bad, but it will bite very widely. - More troublesomely, the CUSK rules are different with -XTypeInType than without. This means that turning on -XTypeInType can turn some CUSKs into non-CUSKs, producing utterly befuddling error messages. Maybe this won't bite so often, but when it does, it will take a developer a long time to sort out the problem. After #83, these problems melt away, but I think it will be painful for users to support multiple versions in the meantime. Richard
Simon
_______________________________________________ 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

I must say, I agree with Richard. Manuel
Am 23.03.2018 um 02:52 schrieb Richard Eisenberg
: On Mar 22, 2018, at 11:15 AM, Simon Peyton Jones
mailto:simonpj@microsoft.com> wrote: Dear GHC steering committee
I strongly propose that we accept
Treat kind and type vars identically with `forall` #103
Agreed, unsurprisingly.
Moreover, I propose that we adopt it without a 3-release wait after #83 – see under Alternatives. Any programs that are rejected by #103 can be fixed by adding some extra forall k’s. And that change will be accepted NOW if you add -XTypeInType.
Here I disagree. Enabling -XTypeInType has two unfortunate knock-on effects: - * is no longer available in kinds, without import Data.Kind. Happily, GHC gives a good error message upon a forgotten `import Data.Kind`, so this isn't so bad, but it will bite very widely. - More troublesomely, the CUSK rules are different with -XTypeInType than without. This means that turning on -XTypeInType can turn some CUSKs into non-CUSKs, producing utterly befuddling error messages. Maybe this won't bite so often, but when it does, it will take a developer a long time to sort out the problem.
After #83, these problems melt away, but I think it will be painful for users to support multiple versions in the meantime.
Richard
Simon
_______________________________________________ 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

Hi, Am Donnerstag, den 22.03.2018, 11:52 -0400 schrieb Richard Eisenberg:
On Mar 22, 2018, at 11:15 AM, Simon Peyton Jones
wrote: Dear GHC steering committee I strongly propose that we accept Treat kind and type vars identically with `forall` #103
Agreed, unsurprisingly.
there seems to be consensus.
Moreover, I propose that we adopt it without a 3-release wait after #83 – see under Alternatives. Any programs that are rejected by #103 can be fixed by adding some extra forall k’s. And that change will be accepted NOW if you add -XTypeInType.
Here I disagree. Enabling -XTypeInType has two unfortunate knock-on effects: - * is no longer available in kinds, without import Data.Kind. Happily, GHC gives a good error message upon a forgotten `import Data.Kind`, so this isn't so bad, but it will bite very widely. - More troublesomely, the CUSK rules are different with -XTypeInType than without. This means that turning on -XTypeInType can turn some CUSKs into non-CUSKs, producing utterly befuddling error messages. Maybe this won't bite so often, but when it does, it will take a developer a long time to sort out the problem.
After #83, these problems melt away, but I think it will be painful for users to support multiple versions in the meantime.
Richard
what does this mean for this proposal? Is there disagreement over quickly the proposal will be implemented? Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

On Apr 13, 2018, at 7:48 PM, Joachim Breitner
wrote: what does this mean for this proposal? Is there disagreement over quickly the proposal will be implemented?
Yes, I believe there has been disagreement here, with Simon advocating for a sooner implementation, and Manuel and I arguing for a more delayed implementation (specifically, 2 releases after #83 is implemented). Richard

Hi, Am Sonntag, den 15.04.2018, 23:11 -0400 schrieb Richard Eisenberg:
On Apr 13, 2018, at 7:48 PM, Joachim Breitner
wrote: what does this mean for this proposal? Is there disagreement over quickly the proposal will be implemented?
Yes, I believe there has been disagreement here, with Simon advocating for a sooner implementation, and Manuel and I arguing for a more delayed implementation (specifically, 2 releases after #83 is implemented).
can you work towards a consensus? Simon, since you are the Shepherd I’d kindly ask you to drive this discussion. Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

Dear committee
I strongly propose that we accept Treat kind and type vars identically with `forall` #103
Agreed, unsurprisingly.
There seems to be consensus. We accept! I proposed this:
Moreover, I propose that we adopt it without a 3-release wait after #83 – see under Alternatives. Any programs that are rejected by #103 can be fixed by adding some extra forall k’s. And that change will be accepted NOW if you add -XTypeInType.
But Richard and Manual disagreed:
Here I disagree. Enabling -XTypeInType has two unfortunate knock-on effects: - * is no longer available in kinds, without import Data.Kind. Happily, GHC gives a good error message upon a forgotten `import Data.Kind`, so this isn't so bad, but it will bite very widely. - More troublesomely, the CUSK rules are different with -XTypeInType than without. This means that turning on -XTypeInType can turn some CUSKs into non-CUSKs, producing utterly befuddling error messages. Maybe this won't bite so often, but when it does, it will take a developer a long time to sort out the problem.
After #83, these problems melt away, but I think it will be painful for users to support multiple versions in the meantime.
So let's accept the proposal as-is, i.e. with the 3-release wait. Simon

Hi, Am Dienstag, den 22.05.2018, 16:34 +0000 schrieb Simon Peyton Jones:
There seems to be consensus. We accept!
yay, merged! Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
participants (4)
-
Joachim Breitner
-
Manuel M T Chakravarty
-
Richard Eisenberg
-
Simon Peyton Jones