[Haskell-cafe] GHC Extension Proposal: ArgumentBlock
Fumiaki Kinoshita
fumiexcel at gmail.com
Tue Sep 8 09:48:43 UTC 2015
It would be quite useful. It allows us to write
foo $!%$*~ runBarT do ...
Instead of
(foo $!%$*~) $ runBarT $ do ...
2015-09-06 7:55 GMT+09:00 Andrew Gibiansky <andrew.gibiansky at gmail.com>:
> I'd like to propose a GHC extension called (for now) `ArgumentBody`.
> `ArgumentBody` is a simple syntax extension, than, when enabled, permits
> the following code:
>
> main = when True do
> putStrLn "Hello!"
>
>
> main = forM values \value ->
> print value
>
>
> main = forM values \case
> Just x -> print x
> Nothing -> print y
>
>
> In this code we do not need `$` before `do`, lambda, or lambda-case (if
> -XLambdaCase is enabled). This change would *not* extend to `let`, `if`,
> `case`, or any other constructs.
>
> Pros:
>
> 1. Code is simpler and it greatly reduces the need for "operator line
> noise" of $ everywhere.
> 2. We can avoid using the type-checker hack for $
> <http://stackoverflow.com/questions/9468963/runst-and-function-composition>
> for things such as runSt.
>
> Cons:
>
> 1. Adds complexity to the compiler. (NB: The change is minimal and not
> invasive at all.)
> 2. Contributes to a proliferation of extensions that other tools must
> support. (NB: This is just a parser change so should be easy for all tools
> to support.)
>
> I'm very interested in hearing both favoring and dissenting opinions on
> this proposed change. If this change is approved of, names besides
> -XArgumentBody can be considered.
>
> See more info on Trac
> <https://ghc.haskell.org/trac/ghc/ticket/10843#ticket>.
>
> -- Andrew Gibiansky
>
> _______________________________________________
> 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/aca40580/attachment.html>
More information about the Haskell-Cafe
mailing list