on master help sign in
Use realToFrac instead of (fromRational . toRational).
7d02e73Bryan O'Sullivan
Data/Aeson/Types.hs+1−1
@@ -393,7 +393,7 @@ instance FromJSON Number where
393 {-# INLINE parseJSON #-}
393 {-# INLINE parseJSON #-}
394
394
395instance ToJSON Float where
395instance ToJSON Float where
396− toJSON = Number . fromRational . toRational
396+ toJSON = Number . realToFrac
397 {-# INLINE toJSON #-}
397 {-# INLINE toJSON #-}
398
398
399instance FromJSON Float where
399instance FromJSON Float where
benchmarks/AesonEncode.hs+1−1
@@ -39,6 +39,6 @@ main = do
39 _ -> error $ "failed to read " ++ show arg
39 _ -> error $ "failed to read " ++ show arg
40 loop 0 r
40 loop 0 r
41 delta <- flip diffUTCTime start `fmap` getCurrentTime
41 delta <- flip diffUTCTime start `fmap` getCurrentTime
42− let rate = fromIntegral count / (fromRational . toRational) delta :: Double
42+ let rate = fromIntegral count / realToFrac delta :: Double
43 putStrLn $ " " ++ show delta
43 putStrLn $ " " ++ show delta
44 putStrLn $ " " ++ show (round rate) ++ " per second"
44 putStrLn $ " " ++ show (round rate) ++ " per second"
benchmarks/AesonParse.hs+1−1
@@ -29,5 +29,5 @@ main = do
29 (good, _) <- loop 0 0
29 (good, _) <- loop 0 0
30 delta <- flip diffUTCTime start `fmap` getCurrentTime
30 delta <- flip diffUTCTime start `fmap` getCurrentTime
31 putStrLn $ " " ++ show good ++ " good, " ++ show delta
31 putStrLn $ " " ++ show good ++ " good, " ++ show delta
32− let rate = fromIntegral count / (fromRational . toRational) delta :: Double
32+ let rate = fromIntegral count / realToFrac delta :: Double
33 putStrLn $ " " ++ show (round rate) ++ " per second"
33 putStrLn $ " " ++ show (round rate) ++ " per second"