<div dir="ltr"><br><br><div class="gmail_quote">On Fri, Aug 29, 2008 at 6:41 AM, Maurí­cio <span dir="ltr">&lt;<a href="mailto:briqueabraque@yahoo.com">briqueabraque@yahoo.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br>
<br>
<a href="http://haskell.org/haskellwiki/Keywords" target="_blank">http://haskell.org/haskellwiki/Keywords</a> says that:<br>
<br>
-------------<br>
[do is a] syntactic sugar for use with monadic<br>
expressions. For example:<br>
<br>
&nbsp;do { x ; result &lt;- y ; foo result }<br>
<br>
is shorthand for:<br>
<br>
&nbsp;x &gt;&gt; y &gt;&gt;= \result -&gt; foo result<br>
-------------<br>
<br>
I did some tests hiding Prelude.&gt;&gt; and Prelude.&gt;&gt;=<br>
and applying &gt;&gt; and &gt;&gt;= to non-monadic types, and<br>
saw that &#39;do&#39; would not apply to them. So, I would<br>
like to add the following to that text:<br>
</blockquote><div><br>It sounds like you tried to redefine (&gt;&gt;) and (&gt;&gt;=) and make &#39;do&#39; use the new definitions.&nbsp; This is not possible, regardless of what types you give (&gt;&gt;) and (&gt;&gt;=).<br>
<br>If you want to define (&gt;&gt;) and (&gt;&gt;=), do so for a particular instance of Monad.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
-------------<br>
as long as proper types apply:<br>
<br>
x :: Prelude.Monad a<br>
y :: Prelude.Monad b<br>
foo :: b -&gt; Prelude.Monad c<br>
-------------<br>
<br>
Is that correct (Haskell and English)?<br>
<br>
Thanks,<br>
Maurício<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">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><br></div>