[make VMap a record type
John Meacham <john@repetae.net>**20060223044822] hunk ./Fixer/VMap.hs 15
-data VMap n = VMap (Map.Map (n,Int) (VMap n)) (Set.Set n)
+data VMap n = VMap {
+    vmapArgs :: (Map.Map (n,Int) (VMap n)),
+    vmapNodes :: (Set.Set n)
+    }
hunk ./Fixer/VMap.hs 21
-vmapSingleton n = VMap Map.empty (Set.singleton n)
+emptyVMap :: Ord a => VMap a
+emptyVMap = VMap { vmapArgs = mempty, vmapNodes = mempty }
+
+vmapSingleton n = emptyVMap { vmapNodes = (Set.singleton n) }
hunk ./Fixer/VMap.hs 27
-    | isBottom v = bottom
-    | otherwise = VMap (Map.singleton (n,i) v) Set.empty
+    | isBottom v = emptyVMap
+    | otherwise = emptyVMap { vmapArgs = (Map.singleton (n,i) v) }
hunk ./Fixer/VMap.hs 30
-vmapArg n i (VMap map _) = case Map.lookup (n,i) map of
+vmapArg n i VMap { vmapArgs =  map } = case Map.lookup (n,i) map of
hunk ./Fixer/VMap.hs 35
-vmapValue n xs = pruneVMap $ VMap (Map.fromAscList (zip (zip (repeat n) [0..]) xs)) (Set.singleton n)
+vmapValue n xs = pruneVMap VMap { vmapArgs = Map.fromAscList (zip (zip (repeat n) [0..]) xs), vmapNodes = Set.singleton n }
hunk ./Fixer/VMap.hs 37
-vmapHeads (VMap _ set) = Set.toList set
-vmapJustHeads (VMap _ set) = VMap Map.empty set
+vmapHeads VMap { vmapNodes = set } = Set.toList set
+vmapJustHeads VMap { vmapNodes = set } = emptyVMap { vmapNodes = set }
hunk ./Fixer/VMap.hs 40
-pruneVMap (VMap map set) = VMap map' set where
+pruneVMap VMap { vmapArgs = map, vmapNodes =  set} = VMap {vmapArgs = map', vmapNodes = set} where
hunk ./Fixer/VMap.hs 50
-    bottom = VMap Map.empty Set.empty
-    isBottom (VMap m s) = Map.null m && Set.null s
-    lub (VMap as ns) (VMap as' ns') = pruneVMap $ VMap (Map.unionWith lub as as') (Set.union ns ns')
-    minus (VMap n1 w1) (VMap n2 w2) = pruneVMap $ VMap (Map.fromAscList $ [
+    bottom = emptyVMap
+    isBottom VMap { vmapArgs = m, vmapNodes = s } = Map.null m && Set.null s
+    lub VMap { vmapArgs = as, vmapNodes = ns } VMap { vmapArgs = as', vmapNodes = ns'} = pruneVMap $ VMap {vmapArgs = Map.unionWith lub as as', vmapNodes = Set.union ns ns' }
+    minus VMap { vmapArgs = n1, vmapNodes = w1} VMap { vmapArgs = n2, vmapNodes = w2 } = pruneVMap $ VMap { vmapArgs = Map.fromAscList $ [
hunk ./Fixer/VMap.hs 57
-        | ((a,i),v) <- Map.toAscList n1 ] ) (w1 Set.\\ w2)
+        | ((a,i),v) <- Map.toAscList n1 ], vmapNodes = (w1 Set.\\ w2) }
hunk ./Fixer/VMap.hs 63
+