[Haskell-cafe] GHC Extension Proposal: ArgumentBlock

Niklas Larsson metaniklas at gmail.com
Tue Sep 8 14:35:16 UTC 2015


I would be unhappy if GHC included gratuitous differences from the Haskell spec by default. It's hard enough for people working on alternative Haskell implementations as is, stepping away from the spec would be a movie in the wrong direction.

----- Ursprungligt meddelande -----
Från: "Michal Antkiewicz" <mantkiew at gsd.uwaterloo.ca>
Skickat: ‎2015-‎09-‎08 16:10
Till: "Haskell Cafe" <haskell-cafe at haskell.org>
Ämne: Re: [Haskell-cafe] GHC Extension Proposal: ArgumentBlock

+1 for the change but not for an extension. Here's why


1. I remember when I was new to Haskell, having to add $ confused me a lot. It caused a lot of frustration, some errors I didn't understand, which didn't help me realize that $ was needed. I still vividly remember the pain....


2. It seems the change is fully backwards compatible and it does not prevent people still using the old style if they wanted. I would make it a default, not an extension.


3. In order to verify backwards compatibility, I would generate Core output for all of Hackage with both the current and the new compilers and check that Core remains identical. That would be a conclusive proof to me.


4. Regarding the other mentioned extensions like multiway if, etc. they should become default as well because they are backwards compatible as well. 


5. The only reason to guard changes behind LANGUAGE pragmas should be when they are causing problems with other extensions.


I too feel that Haskell community is becoming more and more conservative. I believe there's still time now to make the language as best it can be at the cost of loosing backwards compatibility. The rapid improvements in the language is what attracts me to Haskell.


Best,

Michał 


On Tue, Sep 8, 2015 at 12:56 AM, Andrew Gibiansky <andrew.gibiansky at gmail.com> wrote:

In order to get a feel for  using this extension in real-world Haskell, take a look at the new ghc-reskin package:


https://github.com/gibiansky/ghc-reskin



This allows you to use ArgumentBlock *today* by passing GHC a few parameters to tell it to use ghc-reskin as a preprocessor. Take a look at the README for a full example.


-- Andrew


On Mon, Sep 7, 2015 at 9:02 PM, Bardur Arantsson <spam at scientician.net> wrote:

On 09/08/2015 03:08 AM, Dan Burton wrote:
> +1 people who like it can use it and people who don't like it don't have to
> use it. Personally I wish it were the default because the superfluous $
> confuses a lot of people coming from other languages like Ruby.
>

Whether it's "superfluous" depends entirely on one's PoV.

> You can even write in the old style if you have the extension turned on. It
> doesn't disable the old way of doing things. It just allows a new way. It's
> entirely backwards compatible with working code when turned on, is it not?
>

Except now there are two "dialects" everybody has to read/understand.
That's not progress IMO. (Considering that it's so little gain. I really
don't understand the hatred of $ that some people seem to have.)

Regards,



_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150908/281da55f/attachment.html>


More information about the Haskell-Cafe mailing list