<html><body>
        <div dir="ltr">
    Joachim, I love your statistics :) And I think I’m less sad that you made it look: I think that NullaryTypeClasses is implied by MultiParamTypeClasses, and that MonadFailDesugaring is already (or is going to be) the default in GHC! :P</div><div dir="ltr"><br></div><div dir="ltr">To get some more discussion, I would be very happy to hear reasons for and against:</div><div dir="ltr"><br></div><div dir="ltr">- GADTs:</div><div dir="ltr">  - Stable and well documented,</div><div dir="ltr">  - Adding indices to types is one of the main reasons one would like to have MultiParamTypeClasses and TypeFamilies on,</div><div dir="ltr">  - I find the GADT syntax much nicer (but this is an extremely personal choice.)</div><div dir="ltr"><br></div><div dir="ltr">- RankNTypes:</div><div dir="ltr">  - I originally voted “no”, because I find it to be part of “advanced Haskell”, and because using it may be complicated without ImpredicativeTypes on,</div><div dir="ltr">  - On the other hand, it’s also been in GHC for ages.</div><div dir="ltr"><br>
    <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On 3 Dec 2020 at 10:31:18, 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">
            <div>
    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">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">mail@joachim-breitner.de</a><br>  <a href="http://www.joachim-breitner.de/">http://www.joachim-breitner.de/</a><br><br><br>_______________________________________________<br>ghc-steering-committee mailing list<br><a href="mailto:ghc-steering-committee@haskell.org">ghc-steering-committee@haskell.org</a><br><a href="https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee">https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee</a><br>
</div>
        </blockquote>
    </div>
</div>
    
</body></html>