OK, well thanks for the info.
I'm not really interested in getting down to instruction-level scheduling. I just want to know, at a high level, will implementing my algorithm in integer arithmetic rather than floating-point make a measurable difference to overall program speed.
Actually, thinking about it, I suppose the killer question is this: Does changing between different numer representations make any measurable performance difference at all, or are Haskell programs dominated by cache misses?
A casual inspection won't reveal much difference between Int/Integer/Float/Double. Rational is the only thing I've seen that's very slow, and you can hit that accidently using some of the polymorphic functions, e.g. realToFrac with RULES off. Or divMod' even with RULES on. --Lane