Great questions. Here's my take:

For something to be incorporated into the standard, we'd need to be able to 
give a concrete, precise description of how the extension changes the set of 
correct Haskell programs. We also need to consider how the extension changes 
properties of the language, like predictability of performance or class 
coherence.

For the four you mention, here are my thoughts:

MultiParamTypeClasses: Can't these be used to create incoherence? I seem to 
recall hearing this once. I'm in general in favor of including these, but would 
want to reflect on the coherence question a bit.

OverloadedStrings: This seems very straightforward. But it's quite easy to 
conceive of times when I wouldn't want this feature in the language. If the 
extension becomes part of the standard, is there a way to turn it off? If not, 
Haskell2020 would not be a conservative extension of Haskell2010.

GADTs: While GADTSyntax seems straightforward, GADT type inference is far from. 
Do we have a description of GADT type inference that doesn't rely on thinking 
about variable unification? Even if we're OK putting unification into the 
standard, GHC's current inference capabilities are still not very finely 
mapped. (Note that the inference algorithm in the OutsideIn paper is incomplete 
with respect to the specification in that paper.)

TypeFamilies: I think there's quite a bit more to understand about type 
families before they could be standardized. First off, they come in many 
flavors (associated, open, closed). Do we want to include all of the flavors? 
How do partial type families really operate? I wrote a blog post [1] exploring 
this topic and had more questions than answers. What about termination 
checking? Or do we want to allow non-terminating definitions and discard 
decidability of type inference?

Of course, I recognize that John picked just a few arbitrary popular 
extensions. But even these extensions have a lot of dark corners, and my 
answers above are just to highlight that there's real work to be done, even 
with very popular extensions.

Richard

[1]: https://typesandkinds.wordpress.com/2015/09/09/what-are-type-families/

On May 2, 2016, at 6:57 PM, "John Wiegley" <jo...@newartisans.com> wrote:

> I wonder if there are GHC extensions we'd like to promote as features in the
> next report, as a starting point for discussing new additions.
> 
> There are a few GHC features that have become part of the regular Haskell
> landscape, such that it's hard to imagine a modern Haskell without them. For
> example, MultiParamTypeClasses, OverloadedStrings, GADTs, TypeFamilies, etc.
> 
> How much "work" is typically involved in promoting a feature to be in the
> Report, and how do we determine when it's a bad idea?
> 
> -- 
> John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
> http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2
> _______________________________________________
> Haskell-prime mailing list
> Haskell-prime@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-prime

Reply via email to