[utilize new proxy support in Fixer.VMap
John Meacham <john@repetae.net>**20060223062023] hunk ./E/TypeAnalysis.hs 28
-type Typ = VMap Name
+type Typ = VMap () Name
hunk ./E/TypeAnalysis.hs 62
-sillyEntry env t = mapM_ (addRule . (`isSuperSetOf` value (vmapSingleton v_silly))) args where
+sillyEntry env t = mapM_ (addRule . (`isSuperSetOf` value (vmapPlaceholder ()))) args where
hunk ./E/TypeAnalysis.hs 96
-        addRule $ dynamicRule v' $ \ v -> mconcat $ flip map (vmapHeads v) $ \ h ->
-            mconcat $ t' `isSuperSetOf` value (vmapSingleton h) : (flip map (zip as' [0.. ])  $ \ (a,i) -> modifiedSuperSetOf t' a $ \ v -> vmapArgSingleton h i v)
+        addRule $ dynamicRule v' $ \ v -> mconcat $ (t' `isSuperSetOf` value (vmapDropArgs v)):case vmapHeads v of
+                Just vs -> concat $ flip map vs $ \h -> (flip map (zip as' [0.. ])  $ \ (a,i) -> modifiedSuperSetOf t' a $ \ v -> vmapArgSingleton h i v)
+                Nothing -> flip map (zip as' [0.. ])  $ \ (_,i) -> isSuperSetOf t' (value $ vmapProxyIndirect i v)
hunk ./E/TypeAnalysis.hs 103
-    addRule $ conditionalRule (\ (VMap _ vs) -> n `Set.member` vs) v $ ioToRule $ do
+    addRule $ conditionalRule (n `vmapMember`) v $ ioToRule $ do
hunk ./E/TypeAnalysis.hs 162
-    prune ec@ECase { eCaseScrutinee = EVar v } | sortStarLike (getType v), Just (VMap _ ns) <- Info.lookup (tvrInfo v) = do
-        ec' <- pruneCase ec ns
+    prune ec@ECase { eCaseScrutinee = EVar v } | sortStarLike (getType v), Just vm <- Info.lookup (tvrInfo v) = do
+        ec' <- pruneCase ec vm
hunk ./E/TypeAnalysis.hs 167
-pruneCase :: Monad m => E -> Set.Set Name -> m E
+pruneCase :: (Monad m) => E -> VMap () Name -> m E
hunk ./E/TypeAnalysis.hs 172
-    f xs (alt@(Alt (LitCons n _ _) _):rs) | not (n `Set.member` ns) = f xs rs
+    f xs (alt@(Alt (LitCons n _ _) _):rs) | not (n `vmapMember` ns) = f xs rs
hunk ./E/TypeAnalysis.hs 174
-    cd (Just d) | or [ n `notElem` as | n <- Set.toList ns ] = Just d
+    cd (Just d) | Just nns <- vmapHeads ns, or [ n `notElem` as | n <- nns ] = Just d
+                | Nothing <- vmapHeads ns = Just d