<div dir="ltr"><div><div>I agree with Simon that we must have GADTs!</div></div><div><br></div><div>I would be slightly sad to see ViewPatterns go in, for two reasons: (1) PatternSynonyms covers some of the use cases but by abstracting over data constructors, which doesn't require clients to adopt a non-idiomatic pattern matching style, and (2) for the rest of the use cases, IMO this design would be better: <a href="https://gitlab.haskell.org/ghc/ghc/-/wikis/view-patterns-alternative">https://gitlab.haskell.org/ghc/ghc/-/wikis/view-patterns-alternative</a></div><div><br></div><div>Cheers</div><div>Simon<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 3 Dec 2020 at 09:31, Joachim Breitner <<a href="mailto:mail@joachim-breitner.de">mail@joachim-breitner.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dear Committee,<br>
<br>
<br>
we have 9 votes in. Dear Cale and Eric, can we have your votes please?<br>
<br>
As always, the table<br>
<a href="https://github.com/ghc-proposals/ghc-proposals/blob/ghc2021/proposals/0000-ghc2021.rst#data" rel="noreferrer" target="_blank">https://github.com/ghc-proposals/ghc-proposals/blob/ghc2021/proposals/0000-ghc2021.rst#data</a><br>
has the current data.<br>
<br>
We had the most discussion so far about:<br>
<br>
 * The innnocence of PostfixOperators<br>
 * The effect of UnicodeSyntax on error messages<br>
 * Whether InstanceSigs is a good design<br>
 * Whether OverloadedString is harmless enough.<br>
<br>
I see that three is less clear signal on odd extensions that are<br>
obsolete, on by default, implied by others etc. That’s probably fine<br>
and no need to worry; some of them will be resolved by virtue of being<br>
implied by others. We can also sanity-check the final result, and<br>
include all implied ones in the final design.<br>
<br>
So where do we stand?<br>
<br>
Applying the actual quota of ⅔ out of 11, i.e. 8 votes, these would go<br>
in no matter how Cale and Eric vote:<br>
<br>
   BangPatterns, BinaryLiterals, ConstraintKinds, DeriveDataTypeable,<br>
   DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveLift,<br>
   DeriveTraversable, EmptyCase, EmptyDataDecls, EmptyDataDeriving,<br>
   ExplicitForAll, FlexibleContexts, FlexibleInstances, GADTSyntax,<br>
   HexFloatLiterals, ImportQualifiedPost, KindSignatures,<br>
   MultiParamTypeClasses, NamedFieldPuns, NumericUnderscores,<br>
   StandaloneDeriving, ViewPatterns<br>
<br>
The following have 6 or 7 votes, i.e. they’d go in if we extrapolate<br>
from the current votes:<br>
<br>
   ConstrainedClassMethods, DerivingStrategies,<br>
   ExistentialQuantification, GeneralisedNewtypeDeriving, InstanceSigs,<br>
   NegativeLiterals, PostfixOperators, RankNTypes, RecordWildCards,<br>
   ScopedTypeVariables, TupleSections, TypeApplications, TypeFamilies,<br>
   TypeOperators, TypeSynonymInstances<br>
<br>
   These extensions are short one vote:<br>
<br>
   DataKinds, DerivingVia, GADTs, LambdaCase, PolyKinds<br>
<br>
<br>
<br>
   So how sad would we all be? This is the sadness report for each<br>
   committee member, showing the symmetric difference between their ballot<br>
   and the (extrapolated) result.<br>
<br>
<br>
   alejandro<br>
   would miss:<br>
   DataKinds, DerivingVia, GADTs, LambdaCase, MonadFailDesugaring,<br>
   NamedWildCards, NoMonomorphismRestriction, NullaryTypeClasses,<br>
   NumDecimals, OverloadedLists, OverloadedStrings, PolyKinds,<br>
   StandaloneKindSignatures<br>
   doesn’t want:<br>
   RankNTypes<br>
<br>
   arnaud<br>
   would miss:<br>
   Arrows, ExplicitNamespaces, ForeignFunctionInterface,<br>
   FunctionalDependencies, GADTs, MonadFailDesugaring, MonoLocalBinds,<br>
   PartialTypeSignatures, StarIsType, TypeFamilyDependencies<br>
   doesn’t want:<br>
   ExistentialQuantification, ImportQualifiedPost, InstanceSigs,<br>
   NamedFieldPuns, RankNTypes, RecordWildCards, ScopedTypeVariables,<br>
   TupleSections, TypeSynonymInstances<br>
<br>
   iavor<br>
   would miss:<br>
   BlockArguments, MultiWayIf, NoMonomorphismRestriction,<br>
   NullaryTypeClasses, OverloadedStrings, ParallelListComp, RecursiveDo<br>
   doesn’t want:<br>
   ConstrainedClassMethods, ConstraintKinds, DeriveFoldable,<br>
   DeriveFunctor, DeriveTraversable, DerivingStrategies, EmptyCase,<br>
   GADTSyntax, GeneralisedNewtypeDeriving, InstanceSigs, KindSignatures,<br>
   NegativeLiterals, PostfixOperators, TupleSections, TypeApplications,<br>
   TypeFamilies, TypeOperators<br>
<br>
   joachim<br>
   would miss:<br>
   DataKinds, DerivingVia, ForeignFunctionInterface, GADTs, LambdaCase,<br>
   MonoLocalBinds, NamedWildCards, NondecreasingIndentation,<br>
   RoleAnnotations, StarIsType, UnicodeSyntax, UnliftedFFITypes,<br>
   UnliftedNewtypes<br>
   doesn’t want:<br>
   ConstrainedClassMethods, ScopedTypeVariables, TypeSynonymInstances<br>
<br>
   richard<br>
   would miss:<br>
   BlockArguments, DefaultSignatures, DerivingVia,<br>
   DisambiguateRecordFields, ExplicitNamespaces, LexicalNegation,<br>
   NamedWildCards, NumDecimals, ParallelListComp, PolyKinds,<br>
   RoleAnnotations, StandaloneKindSignatures, TemplateHaskellQuotes,<br>
   UnicodeSyntax, UnliftedNewtypes<br>
   doesn’t want:<br>
   NegativeLiterals, RecordWildCards, ScopedTypeVariables, TypeFamilies<br>
<br>
   simonm<br>
   would miss:<br>
   DataKinds, DefaultSignatures, ForeignFunctionInterface, GADTs,<br>
   LambdaCase, LiberalTypeSynonyms, MonoLocalBinds, MultiWayIf,<br>
   NoMonomorphismRestriction, NondecreasingIndentation, NumDecimals,<br>
   OverloadedStrings, PatternSynonyms, PolyKinds, UnicodeSyntax<br>
   doesn’t want:<br>
   DeriveLift, DerivingStrategies, NumericUnderscores, TypeApplications,<br>
   TypeOperators, ViewPatterns<br>
<br>
   spj<br>
   would miss:<br>
   MonoLocalBinds, NoMonomorphismRestriction, NullaryTypeClasses,<br>
   OverloadedLists, OverloadedStrings, ParallelListComp, PolyKinds,<br>
   RecursiveDo, RoleAnnotations, StandaloneKindSignatures, StarIsType<br>
   doesn’t want:<br>
   DerivingStrategies, GeneralisedNewtypeDeriving, NegativeLiterals,<br>
   RecordWildCards, TupleSections, TypeFamilies<br>
<br>
   tom<br>
   would miss:<br>
   BlockArguments, DataKinds, DefaultSignatures, DerivingVia,<br>
   DisambiguateRecordFields, DuplicateRecordFields, ExplicitNamespaces,<br>
   FunctionalDependencies, LambdaCase, LexicalNegation,<br>
   LiberalTypeSynonyms, MagicHash, MultiWayIf, NamedWildCards,<br>
   NullaryTypeClasses, NumDecimals, PackageImports, ParallelListComp,<br>
   PolyKinds, QuasiQuotes, RoleAnnotations, StandaloneKindSignatures,<br>
   TemplateHaskell, TemplateHaskellQuotes, TypeFamilyDependencies,<br>
   UnboxedSums, UnboxedTuples, UnicodeSyntax, UnliftedNewtypes<br>
   doesn’t want:<br>
   none!<br>
<br>
   vitaly<br>
   would miss:<br>
   DataKinds, DerivingVia, GADTs, LambdaCase, MonadFailDesugaring,<br>
   StarIsType<br>
   doesn’t want:<br>
   ConstrainedClassMethods, ExistentialQuantification, PostfixOperators<br>
<br>
<br>
   -- <br>
   Joachim Breitner<br>
  <a href="mailto:mail@joachim-breitner.de" target="_blank">mail@joachim-breitner.de</a><br>
  <a href="http://www.joachim-breitner.de/" rel="noreferrer" target="_blank">http://www.joachim-breitner.de/</a><br>
<br>
<br>
_______________________________________________<br>
ghc-steering-committee mailing list<br>
<a href="mailto:ghc-steering-committee@haskell.org" target="_blank">ghc-steering-committee@haskell.org</a><br>
<a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee" rel="noreferrer" target="_blank">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</blockquote></div>