Of course your safeFromInteger isn&#39;t really safe, what about the minBound? =)<br><br><div class="gmail_quote">On Tue, Apr 7, 2009 at 5:27 PM, Kannan Goundan <span dir="ltr">&lt;<a href="mailto:kannan@cakoose.com">kannan@cakoose.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Here&#39;s my code (in file &quot;Test.hs&quot;)<br>
<br>
  safeFromInteger :: (Num a, Integral a, Bounded a) =&gt; Integer -&gt; Maybe a<br>
  safeFromInteger i =<br>
    if i &gt; (toInteger maxBound)<br>
      then Nothing<br>
      else Just (fromInteger i)<br>
<br>
Here&#39;s the error from GHCi 6.10.1:<br>
<br>
  Test.hs:3:19:<br>
    Ambiguous type variable `a&#39; in the constraints:<br>
      `Bounded a&#39; arising from a use of `maxBound&#39; at Test.hs:3:19-26<br>
      `Integral a&#39; arising from a use of `toInteger&#39; at Test.hs:3:9-26<br>
    Probable fix: add a type signature that fixes these type variable(s)<br>
<br>
It&#39;s almost like GHC thinks that the type variable &quot;a&quot; can&#39;t be part of the<br>
&quot;Bounded&quot; lass and the &quot;Integeral&quot; class.<br>
<br>
I plan to use &quot;safeFromInteger&quot; for converting from Word8, Word16, Word32, etc.<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</blockquote></div><br>