<br><div class="gmail_quote">2008/1/21 Alexander Seliverstov &lt;<a href="mailto:seliverstov.a@gmail.com">seliverstov.a@gmail.com</a>&gt;:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<p>Hi, I try to undestand why this code dosen&#39;t work</p>



<p>f :: (Num a)=&gt;Integer-&gt;a</p>

<p>f i = i</p>







<p>Integer is an instance of Num, so why does this code
produce error: &quot;Couldn&#39;t<span>&nbsp; </span>match
expected type &#39;a&#39; againsta inferred type &#39;Integer&#39; ...&quot;</p>
</blockquote>But the type of this function says that it can return *any* instance of Num -- that is, the caller gets to choose which particular instance of Num they want.&nbsp; This function can only ever return an Integer.<br>
<br>There is actually a function of this type, however; it&#39;s called fromIntegral.&nbsp; It works because it is a member of the Num type class.<br><br>-Brent<br></div>