<div><span class="gmail_quote">On 7/14/07, <b class="gmail_sendername">Andrew Coppin</b> &lt;andrewcoppin wrote:<br></span></div>&gt; That is my recollection also. (Don&#39;t ask me *which* monads, mind you...)<br>In the case in point, the law breakage never the less matches
<br>&quot;intuition&quot;; personally, I ignore the monad laws on the basis that if<br>you&#39;re doing something &quot;sane&quot;, the laws will automatically hold anyway.<br>(But maybe I&#39;m just a renegade?)<br><br>Yeah, the laws confused me for a while as well.&nbsp; Hint to guys writing Haskell documentation, we&#39;re not all doing CS phD you know ;-)&nbsp; We just want to get things done ;-)
<br><br>Andrew, I found comfort and explanation in this article <a href="http://www.haskell.org/haskellwiki/Monads_as_containers">http://www.haskell.org/haskellwiki/Monads_as_containers</a> :<br><br>&quot;The functions return and bind need to satisfy
<a href="http://www.nomaware.com/monads/html/laws.html#laws" class="external text" title="http://www.nomaware.com/monads/html/laws.html#laws" rel="nofollow">a few laws</a> in order to
make a monad, but if you define them in a sensible way given what they are
supposed to do, the laws will work out. The laws are only a formal way to
give the informal description of the meanings of return and bind I have here.&quot;<br><br>