<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2017-04-16 17:21 GMT+02:00 Vassil Ognyanov Keremidchiev <span dir="ltr"><<a href="mailto:varosi@gmail.com" target="_blank">varosi@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">1) It's not a problem, it's a improvement in syntax with lowering verbosity.</div></blockquote><div><br></div><div>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.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"> 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.</div></blockquote><div><br></div><div>I think it's actually not the non-verbosity which makes Haskell attractive, it's its expressiveness. These are two quite different things.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"> I have asked often why do-block is so different, than non-do-block.</div></blockquote><div><br></div><div>Because it is fundamentally different from the rest, having a sequential nature (for some meaning of "sequential" given by the underlying monad).</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"> Exchanging "x = foo" with "x <- foo" will result in error, so there is no problem that the difference is small. </div></blockquote><div><br></div><div>Of course a machine will see the difference easily and immediately, the question is: Will people do so, too?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>2) you're right. May be lazyness could solve that? I'm not sure here.</div></div></blockquote><div><br></div><div>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:</div><div><br></div><div>   "If you can't explain it to a six year old, you don't understand it yourself."</div><div><br></div><div>;-)</div></div></div></div>