Следующий код компилируется отлично, но я не могу использовать свою функцию:
КОД:
g :: (Fractional b, Integral b) => Int -> b -> b
g 1 x = x / (g 2 x + 1)
g 100 x = 2401*x/100
g n x = ((map (\z -> (ceiling z)^2) (1:[0.5,1..]))!!(n-1))*x / ((g (n+1) x) + fromIntegral n)
ОШИБКА:
Ambiguous type variable `t' in the constraints:
`Integral t' arising from a use of `g' at <interactive>:1:0-6
`Fractional t' arising from a use of `g' at <interactive>:1:0-6
Probable fix: add a type signature that fixes these type variable(s)
Почему это происходит и как это обойти? Я использую GHC 6.10.4 под Windows, если это вообще актуально.
Я уже рассмотрел этот связанный вопрос, но не думаю, что он касается моя потребность.