[ghc-steering-committee] #380 GHC2021: Third status update

Joachim Breitner mail at joachim-breitner.de
Mon Dec 7 18:17:17 UTC 2020


Dear Committe,

it’s been two weeks since we started voting. We are still short one
vote (Cale, release the suspsense!). But also, there are still plenty
of “maybes” in your vote. I encourage you to change them to yes or no
(at least for those extensions that are near the edge), so that we have
more clarity on which extensions are actually worth spending emails on.

As always, the table
https://github.com/ghc-proposals/ghc-proposals/blob/ghc2021/proposals/0000-ghc2021.rst#data
has the current data. (And even even got community contributions to
improve its readability. Yay!)

We discussed many extensions on (and I might have missed some):

 * The innnocence of PostfixOperators was pointed out, and widely
   appreciated
 * Joachim pleads for UnicodeSyntax
 * InstanceSigs worries seems to have been addressed, it’s on its way
   in
 * Whether OverloadedString is harmless enough.
 * Whether ViewPatterns are good enough (given that alternative ideas 
   exist)
 * That ForeignFunctionInterfaces is actually part of Haskell2010
 * That this isn’t quite the right time to ditch StarIsType
 * CUSKs vs. StandaloneKindSignatures
 * BlockArguments is liked by some, but may be too new
 * GADTs were advocated for a lot, but also a bit against, so not 
   uncontroversial
 * Same with ExistentialQuantification
 * PolyKinds were advocated for (and got many votes)
 * ScopedTypeVariables is wanted on by default by some,
   despite the fact that nobody believes it’s the last
   word on that design corner. Alejandro argues that it’s
   ok to include it even if it will change in GHC202X again,
   but elsewhere SPJ says that GHC2021 should only include extensions
   we have reason to hope are stable and stay around .
 * Arnaud wonders about the hesitation to include 
   FunctionalDependencies


Applying the actual quota of ⅔ out of 11, i.e. 8 votes, these would go
in no matter how Cale votes:

   BangPatterns, BinaryLiterals, ConstrainedClassMethods,
   ConstraintKinds, DeriveDataTypeable, DeriveFoldable, DeriveFunctor,
   DeriveGeneric, DeriveLift, DeriveTraversable, EmptyCase,
   EmptyDataDecls, EmptyDataDeriving, ExplicitForAll, FlexibleContexts,
   FlexibleInstances, GADTSyntax, GeneralisedNewtypeDeriving,
   HexFloatLiterals, ImportQualifiedPost, InstanceSigs, KindSignatures,
   MultiParamTypeClasses, NamedFieldPuns, NumericUnderscores,
   PolyKinds, PostfixOperators, RankNTypes, StandaloneDeriving,
   StarIsType, TypeApplications, TypeOperators, TypeSynonymInstances

The following have 7 votes, which is the quorum based on 10 ballots:

   ExistentialQuantification, ForeignFunctionInterface, MonoLocalBinds,
   NegativeLiterals, RecordWildCards, StandaloneKindSignatures,
   TypeFamilies

And these are one vote short:

   DataKinds, DerivingStrategies, GADTs, NamedWildCards,
   ScopedTypeVariables, TupleSections, UnicodeSyntax, ViewPatterns


Not sure how useful the list of symmetric difference report is, but
here it is:

alejandro
would miss:
DataKinds, DerivingStrategies, FunctionalDependencies, GADTs,
LambdaCase, MonadFailDesugaring, NamedWildCards,
NoMonomorphismRestriction, NullaryTypeClasses, NumDecimals,
OverloadedLists, OverloadedStrings, ScopedTypeVariables, TupleSections,
UnicodeSyntax, ViewPatterns
doesn’t want:
none!

arnaud
would miss:
Arrows, DerivingStrategies, ExplicitNamespaces, FunctionalDependencies,
GADTs, MonadFailDesugaring, PartialTypeSignatures,
TypeFamilyDependencies, ViewPatterns
doesn’t want:
ExistentialQuantification, ImportQualifiedPost, InstanceSigs,
NamedFieldPuns, PolyKinds, RankNTypes, RecordWildCards,
StandaloneKindSignatures, TypeSynonymInstances

eric
would miss:
DataKinds, DefaultSignatures, DisambiguateRecordFields,
ExplicitNamespaces, FunctionalDependencies, GADTs, MonadFailDesugaring,
NamedWildCards, OverloadedLists, OverloadedStrings,
PartialTypeSignatures, PatternSynonyms, RoleAnnotations,
ScopedTypeVariables, TypeFamilyDependencies
doesn’t want:
EmptyDataDeriving, ForeignFunctionInterface

iavor
would miss:
BlockArguments, CApiFFI, MultiWayIf, NoMonomorphismRestriction,
NullaryTypeClasses, ParallelListComp, RecursiveDo, UnicodeSyntax,
UnliftedNewtypes
doesn’t want:
ConstrainedClassMethods, EmptyCase, ExplicitForAll, GADTSyntax,
GeneralisedNewtypeDeriving, InstanceSigs, KindSignatures,
MonoLocalBinds, NegativeLiterals, PolyKinds, StandaloneKindSignatures,
StarIsType, TypeApplications, TypeFamilies, TypeOperators

joachim
would miss:
DataKinds, DerivingStrategies, DerivingVia, LambdaCase, NamedWildCards,
NondecreasingIndentation, RoleAnnotations, TupleSections,
UnicodeSyntax, UnliftedFFITypes, UnliftedNewtypes
doesn’t want:
ConstrainedClassMethods, ExistentialQuantification,
TypeSynonymInstances

richard
would miss:
BlockArguments, DefaultSignatures, DerivingStrategies, DerivingVia,
DisambiguateRecordFields, ExplicitNamespaces, LexicalNegation,
NamedWildCards, NumDecimals, ParallelListComp, RoleAnnotations,
TemplateHaskellQuotes, TupleSections, UnicodeSyntax, UnliftedNewtypes,
ViewPatterns
doesn’t want:
MonoLocalBinds, NegativeLiterals, RecordWildCards, TypeFamilies

simonm
would miss:
DataKinds, DefaultSignatures, GADTs, LambdaCase, LiberalTypeSynonyms,
MultiWayIf, NoMonomorphismRestriction, NondecreasingIndentation,
NumDecimals, OverloadedStrings, PatternSynonyms, ScopedTypeVariables,
TupleSections, UnicodeSyntax
doesn’t want:
DeriveLift, NumericUnderscores, TypeApplications, TypeOperators

spj
would miss:
NoMonomorphismRestriction, NullaryTypeClasses, OverloadedLists,
OverloadedStrings, ParallelListComp, RecursiveDo, RoleAnnotations,
ScopedTypeVariables, ViewPatterns
doesn’t want:
ForeignFunctionInterface, GeneralisedNewtypeDeriving, NegativeLiterals,
RecordWildCards, TypeFamilies

tom
would miss:
BlockArguments, DataKinds, DefaultSignatures, DerivingStrategies,
DerivingVia, DisambiguateRecordFields, DuplicateRecordFields,
ExplicitNamespaces, FunctionalDependencies, GADTs, LambdaCase,
LexicalNegation, LiberalTypeSynonyms, MagicHash, MultiWayIf,
NamedWildCards, NullaryTypeClasses, NumDecimals, PackageImports,
ParallelListComp, QuasiQuotes, RoleAnnotations, ScopedTypeVariables,
TemplateHaskell, TemplateHaskellQuotes, TupleSections,
TypeFamilyDependencies, UnboxedSums, UnboxedTuples, UnicodeSyntax,
UnliftedNewtypes, ViewPatterns
doesn’t want:
ForeignFunctionInterface, MonoLocalBinds, StarIsType

vitaly
would miss:
DataKinds, DerivingStrategies, DerivingVia, GADTs, LambdaCase,
MonadFailDesugaring, NamedWildCards, OverloadedLists,
OverloadedStrings, ScopedTypeVariables, TupleSections, ViewPatterns
doesn’t want:
ExistentialQuantification, StandaloneKindSignatures

Cheers,
Joachim

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




More information about the ghc-steering-committee mailing list