Please review #259: No kind signatures on associated types Shepherd: Simon PJ

Dear Committee, this is your secretary speaking: No kind signatures on associated types has been proposed by Richard https://github.com/ghc-proposals/ghc-proposals/pull/259 I propose Simon PJ as the shepherd, this seems to be a smaller fix of an existing proposal and Simon has already looked at it. Please reach consensus as described in https://github.com/ghc-proposals/ghc-proposals#committee-process In particular, talk to the authors before, if you think this should be rejected, and kick off the discussion on Github, following the steps described under “Now the shepherd proposes to accept or reject the proposal” in the above link. Thanks, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

All,
I'm the shepherd for
| No kind signatures on associated types
| https://github.com/ghc-proposals/ghc-proposals/pull/259
I recommend acceptance.
The proposal takes the form of an amendment to an earlier accepted proposal
Standalone kind signatures
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0054-ki...
by prohibiting a standalone kind signature for the associated type of a class.
The reason for this narrowing is well described in the "Associated types" subsection of the revised proposal.
The first link above lets you see the baseline proposal, the diff, and the new proposal.
I recommend acceptance because
- the need for standalone signatures on
associated types is weaker (albeit not absent)
- allowing such a signature closes of one possible
future direction
So making them illegal now keeps our options open for the future.
Since standalone kind signatures are not yet released, there will be no back-compat issues.
Please express your opinion. I don't think this one is controversial.
Simon
| -----Original Message-----
| From: ghc-steering-committee

Hi, Am Freitag, den 06.09.2019, 16:42 +0000 schrieb Simon Peyton Jones via ghc-steering-committee:
So making them illegal now keeps our options open for the future.
compelling argument, am in favor :-) Cheers, Joachim -- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/

Yeah, seems reasonable to me as well.
On Fri, Sep 6, 2019 at 2:41 PM Joachim Breitner
Hi,
Am Freitag, den 06.09.2019, 16:42 +0000 schrieb Simon Peyton Jones via ghc-steering-committee:
So making them illegal now keeps our options open for the future.
compelling argument, am in favor :-)
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

In my eyes, one of the most important use of type-signatures-for-everything
(apart from a welcome uniformity), is the will to deprecate `*` in favour
of `Type`. That is because, in practice, I always use `*` in CUSKS (of
which I use a lot!), as with `Type`, they would become immensely crowded
and, to me at least, barely readable. In short: to me
type-signatures-for-everything is the one blocker for deprecating `*`.
So let's look at this proposal through the lens of this use-case:
- Associated type declaration are already kind of type signature
assignments.
- Except only partial, as some of the variables will be to the left of the
type families
- But these extra variables are already mentioned in the type class, where
their type can be specified. In particular by a kind signature!
So do I need to write `(Type -> Type) -> Type` near a type variable? No, I
don't.
I guess I'm in favour, then.
On Fri, Sep 6, 2019 at 11:44 PM Iavor Diatchki
Yeah, seems reasonable to me as well.
On Fri, Sep 6, 2019 at 2:41 PM Joachim Breitner
wrote: Hi,
Am Freitag, den 06.09.2019, 16:42 +0000 schrieb Simon Peyton Jones via ghc-steering-committee:
So making them illegal now keeps our options open for the future.
compelling argument, am in favor :-)
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

On Sep 9, 2019, at 7:49 AM, Spiwack, Arnaud
wrote: - Associated type declaration are already kind of type signature assignments. - Except only partial, as some of the variables will be to the left of the type families - But these extra variables are already mentioned in the type class, where their type can be specified. In particular by a kind signature!
So do I need to write `(Type -> Type) -> Type` near a type variable? No, I don't.
Not that I wish to dampen your enthusiasm for the proposal, but I disagree here.
class C a where type F a (b :: Type -> Type -> Type)
So, while it's true that we don't need all the Type stuff on the class variables, other variables may be included in an associated type and they might need kind signatures. Richard

I didn't know one could do that. Ah well. Still rare enough a use-case that
I won't complain about this limitation.
On Mon, 9 Sep 2019, 11:31 Richard Eisenberg,
On Sep 9, 2019, at 7:49 AM, Spiwack, Arnaud
wrote: - Associated type declaration are already kind of type signature assignments. - Except only partial, as some of the variables will be to the left of the type families - But these extra variables are already mentioned in the type class, where their type can be specified. In particular by a kind signature!
So do I need to write `(Type -> Type) -> Type` near a type variable? No, I don't.
Not that I wish to dampen your enthusiasm for the proposal, but I disagree here.
class C a where type F a (b :: Type -> Type -> Type)
So, while it's true that we don't need all the Type stuff on the class variables, other variables may be included in an associated type and they might need kind signatures.
Richard

Friends
Last call on this one:
| | No kind signatures on associated types
| | https://github.com/ghc-proposals/ghc-proposals/pull/259
I have only heard from
Joachim
Iavor
Arnaud
I would love to hear from more of you.
But this particular proposal is a small delta, and if I don't hear any objections I'll declare it accepted on Weds 18 Dept.
Simon
| -----Original Message-----
| From: Simon Peyton Jones
| Sent: 06 September 2019 17:43
| To: Joachim Breitner
participants (5)
-
Iavor Diatchki
-
Joachim Breitner
-
Richard Eisenberg
-
Simon Peyton Jones
-
Spiwack, Arnaud