Now that Data.Monoid is portable, move Monoid instances for sets and
maps back to where the data types are defined.
import Data.Bits
import Data.Int
import qualified Data.IntSet as IntSet
import Data.Bits
import Data.Int
import qualified Data.IntSet as IntSet
+import Data.Monoid (Monoid(..))
type Mask = Int
type Key = Int
type Mask = Int
type Key = Int
+instance Ord a => Monoid (IntMap a) where
+ mempty = empty
+ mappend = union
+ mconcat = unions
+
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
import Data.Int
import qualified Data.List as List
import Data.Int
import qualified Data.List as List
+import Data.Monoid (Monoid(..))
type Prefix = Int
type Mask = Int
type Prefix = Int
type Mask = Int
+instance Monoid IntSet where
+ mempty = empty
+ mappend = union
+ mconcat = unions
+
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
import Prelude hiding (lookup,map,filter,foldr,foldl,null)
import qualified Data.Set as Set
import qualified Data.List as List
import Prelude hiding (lookup,map,filter,foldr,foldl,null)
import qualified Data.Set as Set
import qualified Data.List as List
+import Data.Monoid (Monoid(..))
+instance (Ord k) => Monoid (Map k v) where
+ mempty = empty
+ mappend = union
+ mconcat = unions
+
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
-import Data.Map ( Map )
-import qualified Data.Map as Map hiding ( Map )
-import Data.IntMap ( IntMap )
-import qualified Data.IntMap as IntMap hiding ( IntMap )
-import Data.Set ( Set )
-import qualified Data.Set as Set hiding ( Set )
-import Data.IntSet ( IntSet )
-import qualified Data.IntSet as IntSet hiding ( IntSet )
-- ---------------------------------------------------------------------------
-- | The monoid class.
-- ---------------------------------------------------------------------------
-- | The monoid class.
instance Num a => Monoid (Product a) where
mempty = Product 1
Product x `mappend` Product y = Product (x * y)
instance Num a => Monoid (Product a) where
mempty = Product 1
Product x `mappend` Product y = Product (x * y)
-
-instance (Ord k) => Monoid (Map k v) where
- mempty = Map.empty
- mappend = Map.union
- mconcat = Map.unions
-
-instance Ord a => Monoid (IntMap a) where
- mempty = IntMap.empty
- mappend = IntMap.union
- mconcat = IntMap.unions
-
-instance Ord a => Monoid (Set a) where
- mempty = Set.empty
- mappend = Set.union
- mconcat = Set.unions
-
-instance Monoid IntSet where
- mempty = IntSet.empty
- mappend = IntSet.union
- mconcat = IntSet.unions
import Prelude hiding (filter,foldr,null,map)
import qualified Data.List as List
import Prelude hiding (filter,foldr,null,map)
import qualified Data.List as List
+import Data.Monoid (Monoid(..))
+instance Ord a => Monoid (Set a) where
+ mempty = empty
+ mappend = union
+ mconcat = unions
+
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------
#if __GLASGOW_HASKELL__
{--------------------------------------------------------------------