travis-meta-yaml-0.1.0.0: src/Data/Aeson/Merge.hs
-- |
-- Module : Data.Aeson.Merge
-- Description : Simple 'Value' merge.
-- Copyright : (c) Oleg Grenrus, 2005
-- License : BSD3
-- Maintainer : Oleg Grenrus <oleg.grenrus@iki.fi>
module Data.Aeson.Merge (merge) where
import Data.Aeson.Types
import Data.HashMap.Strict as HM
-- | A bit like <http://underscorejs.org/#extend _.extend>, but pure, left-bias and recursive.
merge :: Value -> Value -> Value
merge (Object a) (Object b) = Object (HM.unionWith merge a b)
merge a _b = a