module Prelude(RealFrac(..)) where instance RealFrac Double where properFraction x = case decodeFloat x of (m,n) -> if n >= 0 then (fromInteger m * fromInteger (floatRadix x) ^ n, 0) else case quotRem m ((floatRadix x)^(negate n)) of (w,r) -> (fromInteger w, encodeFloat r n)