<br><br><div class="gmail_quote">On Dec 21, 2007 12:08 PM, Nicholls, Mark &lt;<a href="mailto:Nicholls.Mark@mtvne.com">Nicholls.Mark@mtvne.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">











<div link="blue" vlink="blue" lang="EN-GB">

<div><p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I thought from </span></font></p>

<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">&nbsp;</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">"Num numberType =&gt; SquareConstructor<br>
numberType"</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">&nbsp;</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">We could deduce that (in English rather than get Haskell and FOL confusion)
</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">&nbsp;</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">all values of "SquareConstructor a"….the type of a
would have be be in class Num?..</span></font></p>

<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;">is this not correct?....if not….why not?</span></font></p></div></div></blockquote></div><br>That&#39;s a reasonable thing to assume. It just happens that Haskell doesn&#39;t work that way. There&#39;s an asymmetry between constructing and pattern-matching, and it&#39;s one that many people have complained about.
<br><br>Personally, I never use class contexts in data declarations, simply because it&#39;s too easy to get confused about what they do and do not guarantee.<br clear="all"><br>-- <br>Dave Menendez &lt;<a href="mailto:dave@zednenem.com">
dave@zednenem.com</a>&gt;<br>&lt;<a href="http://www.eyrie.org/~zednenem/">http://www.eyrie.org/~zednenem/</a>&gt;