<div dir="ltr"><font color="#333333"><font><font face="trebuchet ms,sans-serif">Hi David,</font></font></font><div><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div><div style>
<font color="#333333"><font><font face="trebuchet ms,sans-serif">Yours is more precise. f should output (ValueConstructor value) instead of (Monad value) :)</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br>
</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif">--Trung</font></font></font></div><div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div>
<div style><font color="#333333"><font><font face="trebuchet ms,sans-serif"><br></font></font></font></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2012/12/20 David McBride <span dir="ltr">&lt;<a href="mailto:toad3k@gmail.com" target="_blank">toad3k@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The way I like to reason about these things<br>Prelude&gt; :t (&gt;&gt;=)<div class="im"><br>(&gt;&gt;=) :: Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b<br>
<br></div>Since the Monad m in this definition is Maybe, I&#39;ll just substitute it in like so:<br>
Maybe a -&gt; (a -&gt; Maybe b) -&gt; Maybe b<br><br>Then you notice that f is not (a -&gt; b), it is (a -&gt; Maybe b).<br><br><div class="gmail_quote"><div><div class="h5">On Thu, Dec 20, 2012 at 9:07 AM, Trung Quang Nguyen <span dir="ltr">&lt;<a href="mailto:trungnq97@gmail.com" target="_blank">trungnq97@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><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" 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 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 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"> </span><span 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"> </span><span 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"> </span><span 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">  </span></span></li>


<li 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">    return x<span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span 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"> x  </span></span></li>


<li 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 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;color:rgb(138,198,242);background-color:inherit"> &gt;&gt;= </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span 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">  </span></span></li>


<li 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">    <span 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"> x</span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> &gt;&gt;= </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;background-color:inherit">f x  </span></span></li>


<li 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">    fail _<span style="margin:0px;padding:0px;border:none;outline:0px;vertical-align:baseline;color:rgb(138,198,242);background-color:inherit"> = </span><span 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">  </span></span></li>


</ol><div><br></div><div>I am wondering about the implementation of function (&gt;&gt;=). Why don&#39;t it be <b>Just x &gt;&gt;= f = Just (f x)</b>?</div><div><br></div><div>Any body knows about this?</div><span><font color="#888888"><div>


<div><br></div></div><div>--Trung</div><div><br></div>
</font></span></div></div>
<br></div></div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org" target="_blank">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><b>Trung Nguyen</b><div>Mobile: +45 50 11 10 63<br><div>LinkedIn: <a href="http://www.linkedin.com/pub/trung-nguyen/36/a44/187" target="_blank">http://www.linkedin.com/pub/trung-nguyen/36/a44/187</a></div>
<div>View my blog at <a href="http://www.onextrabit.com/" target="_blank">http://www.onextrabit.com/</a></div><div><br></div></div>
</div>