On Sat, 1 Dec 2012, Gábor Lehel wrote:

On Fri, Nov 30, 2012 at 11:06 PM, Nate Soares <n...@so8r.es> wrote:

+1. I agree generally with Gabor's points -- GHC is in the drivers seat. But
at some point we should take a look at all the things GHC has made that did
pay off and that are good and make them official.

I'd very much like to see that endorsement happen soon, even if it's not
aggressive.

Well, I'm not so sure it's a great idea to just bake "what GHC does at
this moment" (for any particular extension) into the standard without
really thinking about it. Even then, you have to figure out, in great
detail, what GHC does, and write it all down! That's not negligible
effort, either. And the alternative is to also publicly discuss and
hash all of it out down to the little tiny gritty stuff. But wanting
to write a new standard (big effort!) just to get rid of some pragmas
and make people feel better (small payoff!) feels like a mismatch to
me.

In my opinion it is a good thing if people feel bad about a lot of LANGUAGE pragmas at top of their modules. For me the number of LANGUAGE pragmas is a (reciprocal) measure of how much effort the programmer invested in cleaning up the code. In the past I removed a lot of FlexibleInstances, FlexibleContexts, UndecidableInstances, TypeSynonymInstances, PatternGuards and _improved_ the code this way. The need for generalized instances is often caused by badly designed classes or types. For me many extensions are a way to get a working implementation quickly from which I can derive a simpler one by throwing out extensions successively. I would also like to tell students that if they need to enable language extensions (or specific set of extensions) then they are solving a task in a too complicated way.

I like to support Gábors arguments. We should have multiple implementations before standardization. E.g. I remember how TypeFamilies have evolved over the time or how the interaction of the forall quantifier with ($) changed between versions of GHC - how can we get confidence that GHC implemented these features in the most reasonable way?
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to