Haskellで誤差なく有理数を扱いたかったら Data.Ratio を使いましょうってだけです。久々に触ったら完全に忘れてたのでメモ。
%演算子でIntegral2個からその比を作れます。通常は整数の比を取って有理数として使うことになるでしょう。
import Data.Ratio
x = 1 % 3
y = 2 % 6 -- 内部的に通分してくれる
x == y -- True
この有理数から分子(numerator)と分母(denominator)を取り出すこともできます。
import Data.Ratio
xs = map (% 2) [1..9] -- [1/2,1,3/2,2...9/2]というリスト
ys = filter ((1 ==) . denominator) xs -- xsから整数(分母が1のもの)だけ抜き出したリスト