Haskell 2020: 'let' to be optional and with wider scope of visibility, like other Haskell functions

Vassil Ognyanov Keremidchiev varosi at gmail.com
Sun Apr 16 17:21:43 UTC 2017


Okay, sorry for taking your time about those propositions. I'm just
thinking of ways for improving future Haskell. My feedback is mostly from
talking with people and trying to teach them in Haskell.

2017-04-16 20:04 GMT+03:00 Sven Panne <svenpanne at gmail.com>:

> 2017-04-16 17:21 GMT+02:00 Vassil Ognyanov Keremidchiev <varosi at gmail.com>
> :
>
>> 1) It's not a problem, it's a improvement in syntax with lowering
>> verbosity.
>>
>
> If it's not a real problem, it probably shouldn't be done: Every tiny
> change in the syntax, even if it's somehow backwards compatible, has a high
> cost in the whole ecosystem: The compiler has to be changed (probably by
> far the easiest part), libraries for parsing/pretty-printing Haskell have
> to be adapted, Editors/syntax highlighting rules have to be changed,
> books/tutorials have to be rewritten and people have to be retrained (yes,
> even if they don't use the new syntax: others might use it). To outweigh
> this pain, there should be be a real gain, saving just 4 keystrokes isn't
> worth it. And for me, and probably others, it's not an improvement in
> syntax, it actually makes things worse by removing a syntactic cue.
>
>
>> It's similar with the difference between Pascal and C syntax. One of the
>> reasons we all love Haskell is because it's not so verbose.
>>
>
> I think it's actually not the non-verbosity which makes Haskell
> attractive, it's its expressiveness. These are two quite different things.
>
>
>> I have asked often why do-block is so different, than non-do-block.
>>
>
> Because it is fundamentally different from the rest, having a sequential
> nature (for some meaning of "sequential" given by the underlying monad).
>
>
>> Exchanging "x = foo" with "x <- foo" will result in error, so there is no
>> problem that the difference is small.
>>
>
> Of course a machine will see the difference easily and immediately, the
> question is: Will people do so, too?
>
>
>> 2) you're right. May be lazyness could solve that? I'm not sure here.
>>
>
> So what are the desugaring rules for your proposal? I have the gut feeling
> that they will be quite a bit more complicated and non-local than the
> current ones. Remember the famous quote:
>
>    "If you can't explain it to a six year old, you don't understand it
> yourself."
>
> ;-)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-prime/attachments/20170416/fc7c150e/attachment.html>


More information about the Haskell-prime mailing list