{-# LANGUAGE CPP #-} #if !defined(TESTING) && __GLASGOW_HASKELL__ >= 703 {-# LANGUAGE Safe #-} #endif #include "containers.h" {-# OPTIONS_HADDOCK hide #-} ----------------------------------------------------------------------------- -- | -- Module : Data.Map.Strict.Merge -- Copyright : (c) David Feuer 2016 -- License : BSD-style -- Maintainer : libraries@haskell.org -- Stability : provisional -- Portability : portable -- -- This module defines an API for writing functions that merge two -- maps. The key functions are 'merge' and 'mergeA'. -- Each of these can be used with several different "merge tactics". -- -- The 'merge' and 'mergeA' functions are shared by -- the lazy and strict modules. Only the choice of merge tactics -- determines strictness. If you use 'Data.Map.Strict.Merge.mapMissing' -- from this module then the results will be forced before they are -- inserted. If you use 'Data.Map.Lazy.Merge.mapMissing' from -- "Data.Map.Lazy.Merge" then they will not. -- -- == Efficiency note -- -- The 'Category', 'Applicative', and 'Monad' instances for 'WhenMissing' -- tactics are included because they are valid. However, they are -- inefficient in many cases and should usually be avoided. The instances -- for 'WhenMatched' tactics should not pose any major efficiency problems. module Data.Map.Strict.Merge {-# DEPRECATED "Use \"Data.Map.Merge.Strict\"." #-} ( module Data.Map.Merge.Strict ) where import Data.Map.Merge.Strict