You can also drop the type signature and see what type deduction you get in ghci :) <br>Your program would have compiled well without the type signature!<br>It&#39;s also a good exercise to come up with the most general type of a function that you write, and then compare it with the type that is deduced by dropping it from the code.<br>
Of course in the final code many people would recommend that you put in the type declarations as a good form of documentation, and it may be also more specialized&nbsp; according to your usage than what the compiler/interpreter will deduce.<br>
<br>Abhay<br><br><div class="gmail_quote">2008/5/9 Wei Yuan Cai &lt;<a href="mailto:weiyuan.cai@gmail.com">weiyuan.cai@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;">
Hello,<br><br>I&#39;m having some trouble with a polymorphic function using another polymorphic function within. A simplified code of what I&#39;m trying to do is as follows:<br><br>main = print $ test 1 8 <br><br>test :: a -&gt; Int -&gt; a<br>

test x n = shift x n<br><br>I get the following compilation error:<br><br>Could not deduce (Data.Bits.Bits a) from the context ()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; arising from a use of `shift&#39; at test.hs:8:11-19<br>&nbsp;&nbsp;&nbsp; Possible fix:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add (Data.Bits.Bits a) to the context of<br>

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the type signature for `test&#39;<br>&nbsp;&nbsp;&nbsp; In the expression: shift x n<br>&nbsp;&nbsp;&nbsp; In the definition of `test&#39;: test x n = shift x n<br><br><br>shift is defined as &quot;a -&gt; Int -&gt; a&quot;<br><br>What am I doing wrong here?<br>

<br>Thanks,<br>Weiyuan<br>
<br>_______________________________________________<br>
Haskell mailing list<br>
<a href="mailto:Haskell@haskell.org">Haskell@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell" target="_blank">http://www.haskell.org/mailman/listinfo/haskell</a><br>
<br></blockquote></div><br>