@@ -7,12 +7,16 @@ module Data.Yaml.Extended
7import qualified Data.Text as T
7import qualified Data.Text as T
8import qualified Data.Vector as V
8import qualified Data.Vector as V
9import Data.Yaml
9import Data.Yaml
10+import Data.Scientific
11toString :: Value -> Maybe String
12toString :: Value -> Maybe String
12toString (String t) = Just (T.unpack t)
13toString (String t) = Just (T.unpack t)
13toString (Bool True) = Just "true"
14toString (Bool True) = Just "true"
14toString (Bool False) = Just "false"
15toString (Bool False) = Just "false"
16+-- | Make sure that numeric fields containing integer numbers are shown as
17+-- | integers (i.e., "42" instead of "42.0").
18+toString (Number d) | isInteger d = Just (formatScientific Fixed (Just 0) d)
15−toString (Number d) = Just (show d)
19+ | otherwise = Just (show d)
16toString _ = Nothing
20toString _ = Nothing
18toList :: Value -> Maybe [Value]
22toList :: Value -> Maybe [Value]