X-Git-Url: http://www.average.org/gitweb/?p=pdns-pipe-nmc.git;a=blobdiff_plain;f=NmcDom.hs;h=8bfb6f358bde32dbcf037ee59b77f97c978f904e;hp=1205db51396250fedafb23fd843fe94bc1437198;hb=a674b931696b192a48fa99c494b2dd55266cfe58;hpb=4b66831c60d39decdc515fb7878ce3c0339684bd diff --git a/NmcDom.hs b/NmcDom.hs index 1205db5..8bfb6f3 100644 --- a/NmcDom.hs +++ b/NmcDom.hs @@ -9,7 +9,7 @@ module NmcDom ( NmcDom(..) ) where import Prelude hiding (length) -import Control.Applicative ((<$>), (<*>), empty, pure) +import Control.Applicative ((<$>), (<*>), liftA2, empty, pure) import Data.Char import Data.Text (Text, unpack) import Data.List (union) @@ -71,7 +71,8 @@ makeMx o = Just _ -> empty makeSubmap :: Object -> Parser (Maybe (Map String NmcDom)) -makeSubmap o = ((.).(.)) merge merge <$> takeTls o <*> takeSrv o <*> takeMap o +makeSubmap o = takeTls o `fmerge` takeSrv o `fmerge` takeMap o + where fmerge = liftA2 merge takeMap :: Object -> Parser (Maybe (Map String NmcDom)) takeMap o =