rem gives this:
Prelude> rem 9 8 1
I wanted something like this:
Prelude> nonIntRem 9.1 8 1.0999999999999996 <
Prelude> nonIntRem 9.1 8 1.0999999999999996
The function you're after is mod' from Data.Fixed.
Data.Fixed