26 Feb
2003
26 Feb
'03
6:12 a.m.
floatRat :: Rational -> Int -> Integer floatRat r lim = num*10^lim `div` den where num = numerator r den = denominator r
My guess is that the error is here. There's a bug in ghc where (x `div` 0) and (x `mod` 0) will results in a seg fault. For now (according to one of the Simons, this is fixed in the next version) you should do something like: floatRat r lim | den == 0 = error "division by zero" | otherwise = num * 10 ^ lim `div` den where num = numberator r den = denominator r If that doesn't fix the problem, perhaps you can try to whittle the example down to something shorter. - Hal