@@ -19,11 +19,12 @@ module Data.Aeson.Encode.ByteString
1919import Prelude hiding (null)
2020import Data.Aeson.Types (ToJSON(..), Value(..))
2121import Data.Char (ord)
22−import Data.Scientific (Scientific, coefficient, base10Exponent, formatScientific, FPFormat(Generic))
22+import Data.Scientific (Scientific, coefficient, base10Exponent)
2323import Data.Word (Word8)
2424import Data.Monoid (mappend)
2525import Data.ByteString.Builder as B
2626import Data.ByteString.Builder.Prim as BP
27+import Data.ByteString.Builder.Scientific (scientificBuilder)
2728import qualified Data.ByteString.Lazy as L
2829import qualified Data.HashMap.Strict as HMS
2930import qualified Data.Text as T
@@ -95,7 +96,7 @@ string t =
9596
9697number :: Scientific -> Builder
9798number s
98− | e < 0 = B.string8 $ formatScientific Generic Nothing s
99+ | e < 0 = scientificBuilder s
99100 | otherwise = B.integerDec (coefficient s * 10 ^ e)
100101 where
101102 e = base10Exponent s