@@ -27,7 +27,7 @@ module Data.Aeson.Types
2727
2828import Control.Applicative
2929import Control.DeepSeq (NFData(..))
30−import Data.Map (Map)
30+import Data.HashMap (HashMap)
3131import qualified Data.ByteString as B
3232import qualified Data.ByteString.Lazy as LB
3333import Data.Text.Encoding (decodeUtf8, encodeUtf8)
@@ -38,10 +38,10 @@ import Data.Time.Format (formatTime, parseTime)
3838import Data.Typeable (Typeable)
3939import Data.Vector (Vector)
4040import System.Locale (defaultTimeLocale)
41−import qualified Data.Map as M
41+import qualified Data.HashMap as M
4242import qualified Data.Vector as V
4343
44−type Object = Map Text Value
44+type Object = HashMap Text Value
4545type Array = Vector Value
4646
4747-- | A JSON value represented as a Haskell value.
@@ -95,7 +95,7 @@ obj .:? key = case M.lookup key obj of
9595-- | Create a 'Value' from a list of 'Object's. If duplicate
9696-- keys arise, earlier keys and their associated values win.
9797object :: [Object] -> Value
98−object = Object . M.unions
98+object = Object . M.fromList . concat . map M.toList
9999{-# INLINE object #-}
100100
101101-- | A type that can be converted to JSON.