- else case domImport mbase of
- Nothing -> return $ Right base'
- Just keys -> foldM mergeImport1 (Right base') keys
- where
- mergeImport1 (Left err) _ = return $ Left err
- mergeImport1 (Right acc) key = do
- sub <- queryNmcDom queryOp key
- case sub of
- Left err -> return $ Left err
- Right sub' -> mergeImport queryOp (depth - 1) $
- sub' `mergeNmcDom` acc
+ else case ((domDelegate mbase), (domImport mbase)) of
+ (Nothing, Nothing ) -> return $ Right base'
+ (Nothing, Just keys) -> foldM mergeIncl1 (Right base') keys
+ (Just key, _ ) -> mergeIncl1 (Right emptyNmcDom) key
+ where
+ mergeIncl1 (Left err) _ = return $ Left err -- can never happen
+ mergeIncl1 (Right acc) key = do
+ sub <- queryNmcDom queryOp key
+ case sub of
+ Left err -> return $ Left err
+ Right sub' -> mergeIncl queryOp (depth - 1) $ sub' `mergeNmcDom` acc