[ghc-steering-committee] GHC2024 committee deliberation

Joachim Breitner mail at joachim-breitner.de
Tue Nov 21 17:18:38 UTC 2023


Hi,

thanks for pushing more and well-justified proposals.

Allow me to collect my thoughts on the individual additions proposed at
https://github.com/ghc-proposals/ghc-proposals/blob/joachim/ghc2024/proposals/0000-ghc2024.rst
(generally, I’m guess I'm an inclusionist here)

* DataKinds and TypeData

Leaning towards yes for DataKinds, unsure for TypeData, and will bow in
if this turns out to be contentious. It feels like a step in the right
direction, but I am not a heavy user.

* DerivingStrategies

Being more explicit seems to be useful, e.g. with documentation, and it
certainly doesn’t hurt. In favor.

* DisambiguateRecordFields 

Small quality-of-life improvement, so sure, why not. In favor, unless I
am missing something (peeks at Adam’s exam paper to copy the answer)


* ExplicitNamespaces

Again, being explicit is good, and it solves this oddity with language
implications not being consistent with language editions (TypeOperators
implies ExplicitNamespaces, but only the former is in gHC2021). In
favor.

* GADTs

To me, they are just a normal part of what Haskell is these days. Let’s
declare them so.

* MonoLocalBinds

Not an expert, but people say it’s simpler and needed to stay sane with
GADTs. Yes, sometimes annoying (local parser helper etc.), but in those
cases an explicit type signature is probably nice as well. Leaning
towards yes.

* ImpredicativeTypes

Trusting Arnaud here, so sure.

* LambdaCase

In favor. I have seen code bases making good use of it, and it fits
Haskell with it’s tendency to favor the point-free style. Happy to
include (including the n-ary \cases variant).

* RoleAnnotations

Yes! It’s just something you need to build proper abstractions these
days

* TypeFamilies

If we add GADTs (and MonoLocalBinds), I wouldn’t mind type families as
well. I follow the argument that _if_ there is going to be a breaking
change to their design in the future (evaluation order or something),
it probably needs to be in a separate extension, given the amount of
code out there already, and thus GHC2024 will continue to work. I hope.
(It’s a bit optimistic for type-level stuff, which is not local to one
module).



Hmm, guess I ended up saying yes to all, but with varying levels of
confidence. I trust the collective wisdom of the committee will find
the right selection in the end.

Cheers,
Joachim








-- 
Joachim Breitner
  mail at joachim-breitner.de
  http://www.joachim-breitner.de/



More information about the ghc-steering-committee mailing list