
On Mon, 25 Feb 2008, Ben wrote:
<interactive>:1:8: Ambiguous type variable `t' in the constraints: `Fractional t' arising from a use of `/' at <interactive>:1:8-10 `Integral t' arising from a use of `^' at <interactive>:1:7-15 Probable fix: add a type signature that fixes these type variable(s)
/ doesn't do integer division, so from there it concludes that you're working with a Fractional type - Haskell never coerces behind your back, so not only the result of / but also its parameters are Fractional. ^ only works for Integral types. You might consider that a little arbitrary, but hey - it's mostly like that because it's much easier to raise something to an integer power. There's no default it can pick that's both Fractional and Integral, so it doesn't know what type the expression should have and it's asking you to tell it ("add a type signature that fixes these type variable(s)"). In practice you won't be able to unless you've got a broken number type handy, but that's the way things go. -- flippa@flippac.org Sometimes you gotta fight fire with fire. Most of the time you just get burnt worse though.