[ghc-steering-committee] Proposal #606: small syntax change around types in terms; recommendation: vote

Richard Eisenberg rae at richarde.dev
Mon Feb 26 13:42:50 UTC 2024

I've been on the fence, as have others here. Simon PJ describes himself as being far from the fence -- and in the same place as Vlad, our proposer and intrepid implementer. So while I'm not deeply convinced in my soul about this, I think the right choice as a committee is to go with option (2) in this thread (which is what the proposer is asking for).

I don't see much of a reason to keep extending this debate (everyone who is saying they care strongly is getting their way), but out of courtesy let's extend this to the end of the month (one extra day this year!). If I don't hear further comments, I'll accept this on Thursday.


> On Jan 25, 2024, at 7:07 AM, Simon Peyton Jones <simon.peytonjones at gmail.com> wrote:
> I vote (2), fairly strongly
> Remember this comment from Vlad:
> @phadej <https://github.com/phadej> For what it's worth, this was my initial thinking when I put ktype there, so past me agrees with you. What changed my opinion is that two years later (i.e. now) I looked at the examples like fn (type Int -> [a]) and had to double check the specification if it was supposed to be fn ((type Int) -> [a]) or fn (type (Int -> [a])).
> The point is that the `type` namespace changer can appear deep within a type.  It's not like "@"!    For exmaple
> fn ((type K) -> [a])
> makes perfect sense.  fn has a required type argument, but in the (type K) sub-part of the type do we switch to the type namespace.  (Maybe K is in scope also as a data constructor.)  Without the parens, do you really want to wonder about how this parses?
> fn (type K -> [a])
> I prefer code that is slightly longer, but much clearer, than saving two characters but requiring reference to the user manual to parse.
> Let's make it simple and unambiguous for now.  If it seems painful in practice we can debate liberalising it.
> Simon
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20240226/659b23cf/attachment.html>

More information about the ghc-steering-committee mailing list