[switch GMap from a type family to a data family
John Meacham <john@repetae.net>**20100725012528
 Ignore-this: fdd9ba177f1ce80d0393e7e04358afc7
] hunk ./src/FrontEnd/Rename.hs 13
-import List
+import List hiding(union)
hunk ./src/FrontEnd/Rename.hs 20
+import Util.SetLike
+import Util.GMap
hunk ./src/FrontEnd/Rename.hs 78
-    withSubTable (Map.fromList nmap) action
+    withSubTable (fromList nmap) action
hunk ./src/FrontEnd/Rename.hs 85
-    subTable = Map.fromList [ (x,y) | (x,[y]) <- ns]
-    nameMap = Map.fromList $ map f ns where
+    subTable = fromList [ (x,y) | (x,[y]) <- ns]
+    nameMap = fromList $ map f ns where
hunk ./src/FrontEnd/Rename.hs 92
-    errorTab =  Map.fromList [ (x,ambig x ys) | ((typ,x),ys@(_:_:_)) <- ns' ]
+    errorTab =  fromList [ (x,ambig x ys) | ((typ,x),ys@(_:_:_)) <- ns' ]
hunk ./src/FrontEnd/Rename.hs 117
-withSubTable st action = local ( \e -> e { envSubTable = st `Map.union` envSubTable e }) action
+withSubTable st action = local ( \e -> e { envSubTable = st `union` envSubTable e }) action
hunk ./src/FrontEnd/Rename.hs 449
-buildRecPat (FieldMap amp fls) n us = case Map.lookup (toName DataConstructor n) amp of
+buildRecPat (FieldMap amp fls) n us = case mlookup (toName DataConstructor n) amp of
hunk ./src/FrontEnd/Rename.hs 452
-        let f (HsPFieldPat x p) = case  Map.lookup (toName FieldLabel x) fls of
+        let f (HsPFieldPat x p) = case  mlookup (toName FieldLabel x) fls of
hunk ./src/FrontEnd/Rename.hs 563
-    case Map.lookup (toName DataConstructor n) amp of
+    case mlookup (toName DataConstructor n) amp of
hunk ./src/FrontEnd/Rename.hs 566
-            let f (HsFieldUpdate x e) = case  Map.lookup (toName FieldLabel x) fls of
+            let f (HsFieldUpdate x e) = case  mlookup (toName FieldLabel x) fls of
hunk ./src/FrontEnd/Rename.hs 580
-        let f (HsFieldUpdate x e) = case  Map.lookup (toName FieldLabel x) fls of
+        let f (HsFieldUpdate x e) = case  mlookup (toName FieldLabel x) fls of
hunk ./src/FrontEnd/Rename.hs 585
-        let g (c,zs) = case Map.lookup c amp of
+        let g (c,zs) = case mlookup c amp of
hunk ./src/FrontEnd/Rename.hs 668
-renameHsName hsName subTable = case Map.lookup hsName subTable of
+renameHsName hsName subTable = case mlookup hsName subTable of
hunk ./src/FrontEnd/Rename.hs 676
-            let err = case Map.lookup hsName et of {
+            let err = case mlookup hsName et of {
hunk ./src/FrontEnd/Rename.hs 689
-    return $ Map.singleton hsName hsName'
+    return $ msingleton hsName hsName'
hunk ./src/FrontEnd/Rename.hs 707
-getUpdatesN nt x = Map.unions `fmap` mapM clobberName (map (toName nt) $ getNames x)
+getUpdatesN nt x = unions `fmap` mapM clobberName (map (toName nt) $ getNames x)
hunk ./src/FrontEnd/Rename.hs 710
-getUpdates x = Map.unions `fmap` mapM clobberName (getNames x)
+getUpdates x = unions `fmap` mapM clobberName (getNames x)
hunk ./src/Name/Id.hs 105
-type instance GSet Id = IdSet
+--type instance GSet Id = IdSet
hunk ./src/Name/Id.hs 139
-type instance GMap Id = IdMap
+--type instance GMap Id = IdMap
hunk ./src/Name/Id.hs 166
-instance GMapSet Id where
-    toSet (IntjectionMap im)  = IntjectionSet $ IM.keysSet im
-    toMap f (IntjectionSet is) = IntjectionMap $ IM.fromDistinctAscList [ (x,f (Id x)) |  x <- IS.toAscList is]
-    
+--instance GMapSet Id where
+--    toSet (IntjectionMap im)  = IntjectionSet $ IM.keysSet im
+--    toMap f (IntjectionSet is) = IntjectionMap $ IM.fromDistinctAscList [ (x,f (Id x)) |  x <- IS.toAscList is]
+
hunk ./src/Name/Id.hs 176
-idSetToIdMap = toMap
+idSetToIdMap f (IntjectionSet is) = IntjectionMap $ IM.fromDistinctAscList [ (x,f (Id x)) |  x <- IS.toAscList is]
hunk ./src/Util/GMap.hs 12
-type family GMap k :: * -> *
-type family GSet k :: *
+data family GMap k :: * -> *
+data family GSet k :: *
hunk ./src/Util/GMap.hs 15
-type instance GMap Int = IM.IntMap
-type instance GSet Int = IS.IntSet
+newtype instance GMap Int v = GMapInt (IM.IntMap v)
+    deriving(Monoid,IsEmpty,HasSize,Collection,Unionize,SetLike,MapLike)
+newtype instance GSet Int = GSetInt IS.IntSet
+    deriving(Monoid,IsEmpty,HasSize,Collection,Unionize,SetLike)
hunk ./src/Util/GMap.hs 20
-type instance GSet Char = EnumSet Char
-type instance GMap Char = EnumMap Char
+instance Functor (GMap Int) where
+    fmap f (GMapInt v) = GMapInt $ fmap f v
+
+type instance Elem (GMap k v) = (k,v)
+type instance Key (GMap k v) = k
+type instance Value (GMap k v) = v
+type instance Elem (GSet k) = k
+type instance Key (GSet k) = k
+
+newtype instance GSet Char = GSetChar (EnumSet Char)
+    deriving(Monoid,IsEmpty,HasSize,Collection,Unionize,SetLike)
+newtype instance GMap Char v = GMapChar (EnumMap Char v)
+    deriving(Monoid,IsEmpty,HasSize,Collection,Unionize,SetLike,MapLike)
+
+data instance GSet [a] = GDone | GCons (GMap a (GSet [a]))
hunk ./src/Util/GMap.hs 42
-instance Enum a => Collection (EnumSet a) where 
+instance Enum a => Collection (EnumSet a) where
hunk ./src/Util/GMap.hs 63
-instance Enum k => Collection (EnumMap k v) where 
+instance Enum k => Collection (EnumMap k v) where
hunk ./src/Util/GMap.hs 81
-    
+
hunk ./src/Util/GMap.hs 98
-instance Intjection a => Collection (IntjectionSet a) where 
+instance Intjection a => Collection (IntjectionSet a) where
hunk ./src/Util/GMap.hs 119
-instance Intjection k => Collection (IntjectionMap k v) where 
+instance Intjection k => Collection (IntjectionMap k v) where
hunk ./src/Util/GMap.hs 138
---type instance Elem  (GMap k v) = (k,v)
---type instance Key   (GMap k v) = k
---type instance Value (GMap k v) = k
-
---instance Collection (GMap k v) 
---instance SetLike (GMap k v) where
-
---instance SetLike (GSet k) where
---    type Elem (GSet k) = k
---    type Key (GSet k) = k
-
-
---class GMapKey k where
---    data GMap k :: * -> *
---    data GSet k :: *
---    fromList :: [(k,v)] -> GMap k v
---    fromDistinctAscList :: [(k,v)] -> GMap k v
---    fromBinDistinctAscList :: Int -> [(k,v)] -> GMap k v
---    insert :: k -> v -> GMap k v -> GMap k v
---    union :: GMap k v -> GMap k v -> GMap k v
---    toList :: GMap k v -> [(k,v)]
---    delete :: k -> GMap k v -> GMap k v
---    member :: k -> GMap k v -> Bool
---    lookup :: k -> GMap k v -> Maybe v
-
---    fromDistinctAscList = fromList
---    fromBinDistinctAscList _ = fromList
---
-{-
-//instance GMapKey Int where
-    newtype GMap Int v = GMapInt (IM.IntMap v)
-    fromList vs = GMapInt (IM.fromList vs)
-    toList (GMapInt x) = IM.toList x
-    insert k v (GMapInt m) = GMapInt (IM.insert k v m)
-    union (GMapInt x) (GMapInt y) = GMapInt $  x `IM.union` y
-    lookup k (GMapInt m) = IM.lookup k m
-
-instance GMapKey a => GMapKey (Maybe a) where
-    data GMap (Maybe a) v = GMapMaybe (Maybe v) (GMap a v)
--}
-
-
-{-
-class GMapKey k where
-    type GMap k :: * -> *
-    fromList :: [(k,v)] -> GMap k v
-    fromDistinctAscList :: [(k,v)] -> GMap k v
-    fromBinDistinctAscList :: Int -> [(k,v)] -> GMap k v
-    insert :: k -> v -> GMap k v -> GMap k v
-    union :: GMap k v -> GMap k v -> GMap k v
-    toList :: GMap k v -> [(k,v)]
-    delete :: k -> GMap k v -> GMap k v
-    member :: k -> GMap k v -> Bool
-    lookup :: k -> GMap k v -> Maybe v
-
-    fromDistinctAscList = fromList
-    fromBinDistinctAscList _ = fromList
-
-instance GMapKey Int where
-    type GMap Int v = (IM.IntMap v)
-    fromList vs = (IM.fromList vs)
-    toList x = IM.toList x
-    insert k v m = (IM.insert k v m)
-    union x y =  x `IM.union` y
-    lookup k m = IM.lookup k m
-
-
-data GMapMaybe k v = GMapMaybe (Maybe v) GMap k v)
-instance GMapKey a => GMapKey (Maybe a) where
-    data GMap (Maybe a) v = GMapMaybe (Maybe v) (GMap a v)
-
-
--}