Haskell does not let you mix pure integers with non-integers, so your integers will get tainted with the inaccuracy inherent in data types like Double unless you use something more accurate like Rational, but given that you do not want the non-integers anyway, throw them away at source, before they are numeric data, if you can.