<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 22 Dec 2008, at 15:18, Andrew Wagner wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Yes, of course, sorry for the typo.<br><br><div class="gmail_quote">On Mon, Dec 22, 2008 at 9:17 AM, Denis Bueno <span dir="ltr">&lt;<a href="mailto:dbueno@gmail.com">dbueno@gmail.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;"> 2008/12/22 Andrew Wagner &lt;<a href="mailto:wagner.andrew@gmail.com">wagner.andrew@gmail.com</a>&gt;:<br> &gt; The problem here is even slightly deeper than you might realize. For<br> &gt; example, what if you have a list of functions. How do you compare two<br> &gt; functions to each other to see if they're equal? There is no good way really<br> &gt; to do it! So, not only is == not completely polymorphic, but it CAN'T be.<br> &gt;<br> &gt; There is a nice solution for this, however, and it's very simple:<br> &gt;<br> &gt; contain :: Eq a -&gt; [a] -&gt; Bool<br> <br> Please note that the syntax here should be:<br> <br> &nbsp; &nbsp;contain :: Eq a =&gt; a -&gt; [a] -&gt; Bool<br> <font color="#888888"><br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Denis</font></blockquote></div></blockquote><br></div><div>Of note, unless this is an exercise, such a function already exists -- it's called elem.</div><div><br></div><div>How do you find such a function? &nbsp;You search on haskell.org/hoogle.</div><div><br></div><div><a href="http://haskell.org/hoogle/?hoogle=Eq+a+%3D%3E+a+-%3E+%5Ba%5D+-%3E+Bool">http://haskell.org/hoogle/?hoogle=Eq+a+%3D%3E+a+-%3E+%5Ba%5D+-%3E+Bool</a></div><div><br></div><div>Bob</div></body></html>