@@ -19,11 +19,12 @@ module Data.Aeson.Encode.ByteString
19import Prelude hiding (null)
19import Prelude hiding (null)
20import Data.Aeson.Types (ToJSON(..), Value(..))
20import Data.Aeson.Types (ToJSON(..), Value(..))
21import Data.Char (ord)
21import Data.Char (ord)
22−import Data.Scientific (Scientific, coefficient, base10Exponent, formatScientific, FPFormat(Generic))
22+import Data.Scientific (Scientific, coefficient, base10Exponent)
23import Data.Word (Word8)
23import Data.Word (Word8)
24import Data.Monoid (mappend)
24import Data.Monoid (mappend)
25import Data.ByteString.Builder as B
25import Data.ByteString.Builder as B
26import Data.ByteString.Builder.Prim as BP
26import Data.ByteString.Builder.Prim as BP
27+import Data.ByteString.Builder.Scientific (scientificBuilder)
27import qualified Data.ByteString.Lazy as L
28import qualified Data.ByteString.Lazy as L
28import qualified Data.HashMap.Strict as HMS
29import qualified Data.HashMap.Strict as HMS
29import qualified Data.Text as T
30import qualified Data.Text as T
@@ -95,7 +96,7 @@ string t =
96number :: Scientific -> Builder
97number :: Scientific -> Builder
98− | e < 0 = B.string8 $ formatScientific Generic Nothing s
99+ | e < 0 = scientificBuilder s
99 | otherwise = B.integerDec (coefficient s * 10 ^ e)
100 | otherwise = B.integerDec (coefficient s * 10 ^ e)
101 e = base10Exponent s
102 e = base10Exponent s