From a674b931696b192a48fa99c494b2dd55266cfe58 Mon Sep 17 00:00:00 2001 From: Eugene Crosser Date: Tue, 6 May 2014 09:10:44 +0400 Subject: [PATCH 1/1] use liftA2 to merge parsers --- NmcDom.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 = -- 2.39.2