X-Git-Url: http://www.average.org/gitweb/?p=pdns-pipe-nmc.git;a=blobdiff_plain;f=NmcDom.hs;h=7eb4ee6d1f83e6906a769923d46ae1fcaf97e571;hp=adb378999a064e81ce759d9b3d3e7c61a0dd34a0;hb=4b7ba1ac6879c5277fc45d52b3f7b783d881b9b9;hpb=8fb1e607cd698dcb6180f7a8c9e0880ea02cc32e diff --git a/NmcDom.hs b/NmcDom.hs index adb3789..7eb4ee6 100644 --- a/NmcDom.hs +++ b/NmcDom.hs @@ -13,7 +13,7 @@ import Data.Text (Text, unpack) import Data.List as L (union) import Data.List.Split import Data.Char -import Data.Map as M (Map, lookup, delete, size, union) +import Data.Map as M (Map, lookup, delete, size, unionWith) import Data.Vector (toList,(!),length, singleton) import Control.Applicative ((<$>), (<*>), empty, pure) import Data.Aeson @@ -37,8 +37,8 @@ obj .:/ key = case H.lookup key obj of class Mergeable a where merge :: a -> a -> a -- bias towads second arg -instance Ord k => Mergeable (Map k a) where - merge mx my = M.union my mx +instance (Ord k, Mergeable a) => Mergeable (Map k a) where + merge mx my = M.unionWith merge my mx -- instance Mergeable String where -- merge _ b = b