module Control.DeepSeq.Containers () where
#if MIN_VERSION_deepseq(1,2,0)
#if !MIN_VERSION_containers(0,4,2)
import Control.DeepSeq (NFData (..))
import Data.Map
import Data.Set
import Data.IntMap
import Data.IntSet
import Data.Tree
instance (NFData k, NFData a) => NFData (Data.Map.Map k a) where
rnf = rnf . Data.Map.toList
instance NFData a => NFData (Data.Set.Set a) where
rnf = rnf . Data.Set.toList
instance NFData a => NFData (Data.Tree.Tree a) where
rnf (Data.Tree.Node r f) = rnf r `seq` rnf f
instance NFData a => NFData (Data.IntMap.IntMap a) where
rnf = rnf . Data.IntMap.toList
instance NFData Data.IntSet.IntSet where
rnf = rnf . Data.IntSet.toList
#endif
#endif