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't work:

intToString :: Int -> [Char]
intToString n | n<10 = chr (n + (ord '0')):[]
intToString n =
    let q = truncate (n/10)
        r = n `mod` 10
        o = ord '0'
        ch = chr (r + o)
    in ch:(intToString q)

(yes, this ends up converting the string in reverse, but that's another issue :P)

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.