<p dir="ltr">Bikeshedding at its finest. I think if we are very lucky, then a long time from now we will be able to deprecate &quot;return&quot; in favor of &quot;Control.Applicative.pure&quot;</p>
<p dir="ltr">As for making it &quot;invisible&quot;, that&#39;s what idiom brackets and monad comprehensions are for. But for those creating an *instance* of Monad, well, we obviously need to be able to refer to which operation we are implementing.</p>

<p dir="ltr">I like the idea of using &quot;lift&quot;, because this is the word used for MonadTrans, which is the same operation, but in the category of Haskell Monads instead of the category of Hask. However, it is convenient to have both in scope unqualified, so maybe lift would not be the best choice.</p>

<p dir="ltr">-- Dan Burton</p>
<div class="gmail_quote">On Aug 6, 2013 7:38 AM, &quot;Tom Ellis&quot; &lt;<a href="mailto:tom-lists-haskell-cafe-2013@jaguarpaw.co.uk">tom-lists-haskell-cafe-2013@jaguarpaw.co.uk</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Aug 06, 2013 at 04:26:05PM +0200, Jerzy Karczmarczuk wrote:<br>
&gt; 1. First, it is not true  that you can do with, say, (printStr &quot;Ho!&quot;<br>
&gt; ) whatever you want. In fact, you can do almost nothing with it. You<br>
&gt; can transport it &quot;as such&quot;, and you can use it as the argument of<br>
&gt; (&gt;&gt;=).<br>
<br>
I don&#39;t think this argument holds much water.  You can do even less with ().<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div>