Why is there no instance of Fractional Int or Fractional Integer?  Obviously integers are fractions with denominator 1.  I was just doing some basic stuff to get more familiar with Haskell, and was seriously racking my brain trying to figure out why the following wouldn&#39;t work:<br>
<br>intToString :: Int -&gt; [Char]<br>intToString n | n&lt;10 = chr (n + (ord &#39;0&#39;)):[]<br>intToString n = <br>    let q = truncate (n/10)<br>        r = n `mod` 10<br>        o = ord &#39;0&#39;<br>        ch = chr (r + o)<br>
    in ch:(intToString q)<br><br>(yes, this ends up converting the string in reverse, but that&#39;s another issue :P)<br><br>I later realized that I could use members of the Integral typeclass such as divMod, mod, etc to make this better, but nonetheless, why should truncate(n/10) be invalid, when n is an Int?  changing it to truncate((toRational n)/10) works, but I would expect Integers to already be rational.<br>