@@ -39,6 +39,7 @@ import Data.Text.Lazy.Builder (toLazyText)
3939import Data.Aeson.Encode (encodeToTextBuilder)
4040#else
4141import qualified Data.ByteString.Char8 as S8
42+import Data.Attoparsec.Number
4243#endif
4344import Prelude hiding (null)
4445
@@ -88,8 +89,13 @@ string s =
8889 | otherwise = EventScalar (encodeUtf8 s) StrTag PlainNoTag Nothing
8990
9091-- Use aeson's implementation which gets rid of annoying decimal points
92+#if MIN_VERSION_aeson(0,7,0)
9193scientific :: Scientific -> YamlBuilder
9294scientific n = YamlBuilder (EventScalar (TE.encodeUtf8 $ TL.toStrict $ toLazyText $ encodeToTextBuilder (Number n)) IntTag PlainNoTag Nothing :)
95+#else
96+scientific :: Number -> YamlBuilder
97+scientific n = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
98+#endif
9399
94100{-# DEPRECATED number "Use scientific" #-}
95101#if MIN_VERSION_aeson(0,7,0)
@@ -97,7 +103,7 @@ number :: Scientific -> YamlBuilder
97103number = scientific
98104#else
99105number :: Number -> YamlBuilder
100−number n rest = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
106+number n = YamlBuilder (EventScalar (S8.pack $ show n) IntTag PlainNoTag Nothing :)
101107#endif
102108
103109bool :: Bool -> YamlBuilder