
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
To get some more discussion, I would be very happy to hear reasons for and
against:
- GADTs:
- Stable and well documented,
- Adding indices to types is one of the main reasons one would like to
have MultiParamTypeClasses and TypeFamilies on,
- I find the GADT syntax much nicer (but this is an extremely personal
choice.)
- RankNTypes:
- I originally voted “no”, because I find it to be part of “advanced
Haskell”, and because using it may be complicated without
ImpredicativeTypes on,
- On the other hand, it’s also been in GHC for ages.
On 3 Dec 2020 at 10:31:18, Joachim Breitner
Dear Committee,
we have 9 votes in. Dear Cale and Eric, can we have your votes please?
As always, the table
https://github.com/ghc-proposals/ghc-proposals/blob/ghc2021/proposals/0000-g... has the current data.
We had the most discussion so far about:
* The innnocence of PostfixOperators * The effect of UnicodeSyntax on error messages * Whether InstanceSigs is a good design * Whether OverloadedString is harmless enough.
I see that three is less clear signal on odd extensions that are obsolete, on by default, implied by others etc. That’s probably fine and no need to worry; some of them will be resolved by virtue of being implied by others. We can also sanity-check the final result, and include all implied ones in the final design.
So where do we stand?
Applying the actual quota of ⅔ out of 11, i.e. 8 votes, these would go in no matter how Cale and Eric vote:
BangPatterns, BinaryLiterals, ConstraintKinds, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveLift, DeriveTraversable, EmptyCase, EmptyDataDecls, EmptyDataDeriving, ExplicitForAll, FlexibleContexts, FlexibleInstances, GADTSyntax, HexFloatLiterals, ImportQualifiedPost, KindSignatures, MultiParamTypeClasses, NamedFieldPuns, NumericUnderscores, StandaloneDeriving, ViewPatterns
The following have 6 or 7 votes, i.e. they’d go in if we extrapolate from the current votes:
ConstrainedClassMethods, DerivingStrategies, ExistentialQuantification, GeneralisedNewtypeDeriving, InstanceSigs, NegativeLiterals, PostfixOperators, RankNTypes, RecordWildCards, ScopedTypeVariables, TupleSections, TypeApplications, TypeFamilies, TypeOperators, TypeSynonymInstances
These extensions are short one vote:
DataKinds, DerivingVia, GADTs, LambdaCase, PolyKinds
So how sad would we all be? This is the sadness report for each committee member, showing the symmetric difference between their ballot and the (extrapolated) result.
alejandro would miss: DataKinds, DerivingVia, GADTs, LambdaCase, MonadFailDesugaring, NamedWildCards, NoMonomorphismRestriction, NullaryTypeClasses, NumDecimals, OverloadedLists, OverloadedStrings, PolyKinds, StandaloneKindSignatures doesn’t want: RankNTypes
arnaud would miss: Arrows, ExplicitNamespaces, ForeignFunctionInterface, FunctionalDependencies, GADTs, MonadFailDesugaring, MonoLocalBinds, PartialTypeSignatures, StarIsType, TypeFamilyDependencies doesn’t want: ExistentialQuantification, ImportQualifiedPost, InstanceSigs, NamedFieldPuns, RankNTypes, RecordWildCards, ScopedTypeVariables, TupleSections, TypeSynonymInstances
iavor would miss: BlockArguments, MultiWayIf, NoMonomorphismRestriction, NullaryTypeClasses, OverloadedStrings, ParallelListComp, RecursiveDo doesn’t want: ConstrainedClassMethods, ConstraintKinds, DeriveFoldable, DeriveFunctor, DeriveTraversable, DerivingStrategies, EmptyCase, GADTSyntax, GeneralisedNewtypeDeriving, InstanceSigs, KindSignatures, NegativeLiterals, PostfixOperators, TupleSections, TypeApplications, TypeFamilies, TypeOperators
joachim would miss: DataKinds, DerivingVia, ForeignFunctionInterface, GADTs, LambdaCase, MonoLocalBinds, NamedWildCards, NondecreasingIndentation, RoleAnnotations, StarIsType, UnicodeSyntax, UnliftedFFITypes, UnliftedNewtypes doesn’t want: ConstrainedClassMethods, ScopedTypeVariables, TypeSynonymInstances
richard would miss: BlockArguments, DefaultSignatures, DerivingVia, DisambiguateRecordFields, ExplicitNamespaces, LexicalNegation, NamedWildCards, NumDecimals, ParallelListComp, PolyKinds, RoleAnnotations, StandaloneKindSignatures, TemplateHaskellQuotes, UnicodeSyntax, UnliftedNewtypes doesn’t want: NegativeLiterals, RecordWildCards, ScopedTypeVariables, TypeFamilies
simonm would miss: DataKinds, DefaultSignatures, ForeignFunctionInterface, GADTs, LambdaCase, LiberalTypeSynonyms, MonoLocalBinds, MultiWayIf, NoMonomorphismRestriction, NondecreasingIndentation, NumDecimals, OverloadedStrings, PatternSynonyms, PolyKinds, UnicodeSyntax doesn’t want: DeriveLift, DerivingStrategies, NumericUnderscores, TypeApplications, TypeOperators, ViewPatterns
spj would miss: MonoLocalBinds, NoMonomorphismRestriction, NullaryTypeClasses, OverloadedLists, OverloadedStrings, ParallelListComp, PolyKinds, RecursiveDo, RoleAnnotations, StandaloneKindSignatures, StarIsType doesn’t want: DerivingStrategies, GeneralisedNewtypeDeriving, NegativeLiterals, RecordWildCards, TupleSections, TypeFamilies
tom would miss: BlockArguments, DataKinds, DefaultSignatures, DerivingVia, DisambiguateRecordFields, DuplicateRecordFields, ExplicitNamespaces, FunctionalDependencies, LambdaCase, LexicalNegation, LiberalTypeSynonyms, MagicHash, MultiWayIf, NamedWildCards, NullaryTypeClasses, NumDecimals, PackageImports, ParallelListComp, PolyKinds, QuasiQuotes, RoleAnnotations, StandaloneKindSignatures, TemplateHaskell, TemplateHaskellQuotes, TypeFamilyDependencies, UnboxedSums, UnboxedTuples, UnicodeSyntax, UnliftedNewtypes doesn’t want: none!
vitaly would miss: DataKinds, DerivingVia, GADTs, LambdaCase, MonadFailDesugaring, StarIsType doesn’t want: ConstrainedClassMethods, ExistentialQuantification, PostfixOperators
-- Joachim Breitner mail@joachim-breitner.de http://www.joachim-breitner.de/
_______________________________________________ ghc-steering-committee mailing list ghc-steering-committee@haskell.org https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee