<p>I can honestly say that I haven&#39;t felt much pain from the status quo regarding this. Most of the time my code is structured so that case statements don&#39;t appear in do blocks. When they do, I don&#39;t see it as a big issue. The special case for operator - is a bigger wart on haskell syntax than this, imo.</p>

<p>I would vote in favor of keeping the language simple. I do like the idea of generalizing lambda functions to include multiple cases, however. </p>
<p>On the other hand, I almost never use lambdas now since named functions yield better &quot;self-documenting&quot; code.</p>
<p>--jonathan</p>
<p><blockquote type="cite">On Oct 8, 2010 8:09 AM, &quot;Peter Wortmann&quot; &lt;<a href="mailto:scpmw@leeds.ac.uk">scpmw@leeds.ac.uk</a>&gt; wrote:<br><br><p><font color="#500050"><br>On Fri, 2010-10-08 at 01:13 +0300, Lauri Alanko wrote: <br>
&gt; Your &quot;general&quot; rule doesn&#39;t subsume your ...</font></p>Yes, that&#39;s what I meant. Thanks for describing it properly.<br>
<p><font color="#500050"><br>On Fri, 2010-10-08 at 05:41 -0700, Nicolas Pouillard wrote:<br>&gt; Imagine find this code:<br>&gt; <br>&gt; do s1<br>&gt; ...</font></p>This is roughly what I meant with &quot;abused&quot;: Where &quot;C&quot; is very complex,<br>

it might become non-obvious where exactly the monad actions are supposed<br>
to happen. Hence such traps when refactoring.<br>
<br>
Also of note: Just moving sub-expressions around isn&#39;t something that is<br>
guaranteed to be save. Introducing new names and using them in &quot;s2&quot;<br>
would be problematic, for example:<br>
<br>
  do map (\x -&gt; (&lt;- putStrLn x)) [&quot;a&quot;, &quot;b&quot;]<br>
<br>
Obviously can&#39;t be made to work. You might have to check for this - or<br>
maybe even disallow the shorthand inside lamdbas and lets. Might be less<br>
satisfying to have such special cases, but it is still a good bit more<br>
general than what is available right now.<br>
<br>
Greetings,<br>
<font color="#888888">  Peter Wortmann<br>
</font><p><font color="#500050"><br><br>_______________________________________________<br>Haskell-Cafe mailing list<br>Haskell-Cafe@haskell.org...</font></p></blockquote></p>