:: x -> (x, x) package:numeric-prelude

\x -> (x::Rational) == (uncurry (+) $ mapFst fromInteger $ splitFraction x)
\x -> uncurry (==) $ mapFst (((x::Double)-) . fromInteger) $ splitFraction x
\x -> uncurry (==) $ mapFst (((x::Rational)-) . fromInteger) $ splitFraction x
\x -> splitFraction x == (floor (x::Double) :: Integer, fraction x)
\x -> splitFraction x == (floor (x::Rational) :: Integer, fraction x)
RealRing.genericSplitFraction =~= (NP.splitFraction :: Double -> (Integer,Double))
RealRing.genericSplitFraction =~= (NP.splitFraction :: Rational -> (Integer,Rational))