[Haskell-cafe] GHC Extension Proposal: ArgumentBlock
andreas.abel at ifi.lmu.de
Tue Sep 8 12:06:41 UTC 2015
+1 to Andrew's original proposal. It is as old as lambda-calculus
itself, and I do not know why anything else was ever implemented for
Agda got the parsing of \lambda right, and recently also the \forall.
On 06.09.2015 00:55, Andrew Gibiansky wrote:
> 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 = whenTrue do
> 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.
> 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 $
> for things such as runSt.
> 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
> -- Andrew Gibiansky
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden
andreas.abel at gu.se
More information about the Haskell-Cafe