<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 20 Dec 2012, at 14:07, Trung Quang Nguyen &lt;<a href="mailto:trungnq97@gmail.com">trungnq97@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><font color="#333333"><font><font face="trebuchet ms,sans-serif">Hi all,</font></font></font><div><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div><div><font color="#333333"><font><font face="trebuchet ms,sans-serif">I saw this</font></font></font></div>
<div><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div><div><ol start="1" class="" style="padding:0px;border:none;outline:0px;font-size:14px;vertical-align:baseline;background-color:rgb(0,0,0);color:rgb(92,92,92);font-family:Consolas,monospace;line-height:25px;margin:0px 0px 1px!important;list-style:none!important">
<li class="" style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit"><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(149,228,84);background-color:inherit;font-weight:bold">instance</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Monad</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Maybe</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(149,228,84);background-color:inherit;font-weight:bold">where</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;&nbsp;</span></span></li>
<li class="" style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit">&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;x<span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;=&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Just</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;x&nbsp;&nbsp;</span></span></li>
<li class="" style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit">&nbsp;&nbsp;&nbsp;&nbsp;<span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;&gt;&gt;=&nbsp;</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;=&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;&nbsp;</span></span></li>
<li class="" style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit">&nbsp;&nbsp;&nbsp;&nbsp;<span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Just</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;x</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;&gt;&gt;=&nbsp;</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;=&nbsp;</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f&nbsp;x&nbsp;&nbsp;</span></span></li>
<li class="" style="border:0px;outline:0px;vertical-align:baseline;background-color:inherit;color:inherit;line-height:18px;margin:0px!important;padding:0px 3px!important;list-style:none!important"><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:white;background-color:inherit">&nbsp;&nbsp;&nbsp;&nbsp;fail&nbsp;_<span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit">&nbsp;=&nbsp;</span><span class="" style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">Nothing</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">&nbsp;&nbsp;</span></span></li>
</ol><div><br></div><div style="">I am wondering about the&nbsp;implementation of&nbsp;function (&gt;&gt;=). Why don't it be <b>Just x &gt;&gt;= f = Just (f x)</b>?</div><div><br></div><div style="">Any body knows about this?</div></div></div></blockquote><br></div><div>The reason is in the type of bind:</div><div><br></div><div>(&gt;&gt;=) :: Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b</div><div><br></div><div>The function f takes a non-in-a-monad value, and gives you an in-a-monad value.</div><div><br></div><div>Bob</div><br></body></html>