X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Data%2FIntMap.hs;h=03a6ab0953a1ff5c79fdca07e3b5214d282c4655;hb=53bfe753263895cad52326c0f57956c2d1d0771e;hp=e210442707c8bc98951e6f02e4bbf77f9ec8ea43;hpb=2701ac4127cbc37e6d1069e2f5240a1e0ec1e479;p=ghc-base.git diff --git a/Data/IntMap.hs b/Data/IntMap.hs index e210442..03a6ab0 100644 --- a/Data/IntMap.hs +++ b/Data/IntMap.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -cpp -fglasgow-exts #-} +{-# OPTIONS -cpp -fglasgow-exts -fno-bang-patterns #-} ----------------------------------------------------------------------------- -- Module : Data.IntMap -- Copyright : (c) Daan Leijen 2002 @@ -138,6 +138,7 @@ import Data.Int import qualified Data.IntSet as IntSet import Data.Monoid (Monoid(..)) import Data.Typeable +import Data.Foldable (Foldable(foldMap)) {- -- just for testing @@ -211,11 +212,16 @@ type Prefix = Int type Mask = Int type Key = Int -instance Ord a => Monoid (IntMap a) where +instance Monoid (IntMap a) where mempty = empty mappend = union mconcat = unions +instance Foldable IntMap where + foldMap f Nil = mempty + foldMap f (Tip _k v) = f v + foldMap f (Bin _ _ l r) = foldMap f l `mappend` foldMap f r + #if __GLASGOW_HASKELL__ {-------------------------------------------------------------------- @@ -230,6 +236,7 @@ instance Data a => Data (IntMap a) where toConstr _ = error "toConstr" gunfold _ _ = error "gunfold" dataTypeOf _ = mkNorepType "Data.IntMap.IntMap" + dataCast1 f = gcast1 f #endif