
I just flipped through the list of accepted GHC proposals[1]. I feel like a kid in a candy shop. I am particularly excited to see the large fraction of proposals that look like either simplifications or homogenizations (making the language more uniform): * Make Constraint not apart from Type * Allow signatures on pattern synonym constructors * Explicit foralls ("Permit ``forall ...`` to bind type variables after the word ``instance`` ...") * Remove the * kind syntax * Allow ScopedTypeVariables to refer to types * Treat kind and type vars identically with `forall` * Embrace (Type :: Type) ("This proposal expands the meaning of -XPolyKinds to include -XTypeInType, deprecates -XTypeInType, and advocates for using Type in place of *.") At various times, I have tried to explore the GHC extensions thoroughly -- well enough to know which ones will let you do what, so that I can learn the right one in detail when I need to. I have always turned back; the space seems too big to cover, and only growing. But now I see that GHC hosts competing forces of simplification and complication. This might be a squishy question, but I'm interested in your feelings regarding how navigable the space of extensions is, and whether you think balkanization is a problem, and how you expect those qualities to evolve. [1] https://github.com/ghc-proposals/ghc-proposals/pulls?page=2&q=label%3AAccepted -- Jeff Brown | Jeffrey Benjamin Brown Website https://msu.edu/~brown202/ | Facebook https://www.facebook.com/mejeff.younotjeff | LinkedIn https://www.linkedin.com/in/jeffreybenjaminbrown(spammy, so I often miss messages here) | Github https://github.com/jeffreybenjaminbrown
participants (1)
-
Jeffrey Brown