<br><br>
<div class="gmail_quote">2009/1/23 Jan Jakubuv <span dir="ltr">&lt;<a href="mailto:jakubuv@gmail.com">jakubuv@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">hi,<br><br>2009/1/23 Francesco Bochicchio &lt;<a href="mailto:bieffe62@gmail.com">bieffe62@gmail.com</a>&gt;:<br>

<div class="Ih2E3d">&gt;<br>&gt; Then I discovered that this piece of code &nbsp;(1) is illegal in askell (ghc<br>&gt; gives the &#39;rigid type variable&#39; error)<br>&gt;<br>&gt; Num n =&gt; a :: n<br>&gt; a = 3 :: Integer<br>
&gt;<br><br></div>I guess you mean:<br><br>a :: Num n =&gt; n<br></blockquote>
<div>&nbsp;</div>
<div>Yes. I&#39;m not _that_ beginner&nbsp; :-) (although I tend to make this mistake quite often ).</div>
<div>&nbsp;</div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><span id=""></span><br>The problem whith your implementation of &#39;a&#39;<br><br>a = 3 :: Integer<br><br>
is that it provides too specific result. Its type signature says that<br>its result has to be of the type n for *any* instance of the class<br>Num. But your result is simply Integer that is just *one* specific<br>instance of Num. In other words it has to be possible to specialize<br>
(&quot;retype&quot;) &#39;a&#39; to any other instance of Num, which is no longer<br>possible because (3 :: Integer) is already specialized.<br>
<div class="Ih2E3d"></div></blockquote>
<div>&nbsp;</div>
<div>Uhm. Now I think I start to get it ...</div>
<div>You are saying that if a value is a Num, it shall be possible to convert it in _any_ of the num instances?</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div><br>&nbsp;</div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Sincerely,<br><font color="#888888">&nbsp;jan.<br></font></blockquote></div>
<div><br>&nbsp;</div>
<div>Ciao</div>
<div>-------</div>
<div>FB</div>
<div>&nbsp;</div>