I have been baffled by this behavior
Prelude> [1, 3 .. 6]
[1,3,5]
Prelude> [1.0, 3.0 .. 6.0]
[1.0,3.0,5.0,7.0]
I've found in Haskell 98 report that
For Float and Double, the semantics of the enumFrom family is given by the rules for Int above, except that the list terminates when the elements become greater than e3+i/2 for positive increment i, or when they become less than e3+i/2 for negative i.
My question is: why is it so?