[code cleanups, less warnings, use tag accessor functions
John Meacham <john@repetae.net>**20050913003555] hunk ./Grin/PointsToAnalysis.hs 4
-import Char(isDigit)
hunk ./Grin/PointsToAnalysis.hs 201
+    minus x y = error $ "minus: " ++ show x <+> show y
hunk ./Grin/PointsToAnalysis.hs 330
+        func x = error $ "func:" ++ x
hunk ./Grin/PointsToAnalysis.hs 415
-
-
-
-    --CharIO.print $ pt
-    --mapM_ CharIO.print [ (n,flattenPointsToEq $  collect n l) |  (n,l) <- grinFunctions ]
+        docase _ _ _ = error $ "docase: strange argument"
hunk ./Grin/PointsToAnalysis.hs 501
+collect _ _ _ _ = error "collect: bad argument"
hunk ./Grin/PointsToAnalysis.hs 598
--- constPos (Ptr h) = return (setHeaps [convertHeap h])
hunk ./Grin/PointsToAnalysis.hs 701
-            pp (Ptr i) | Just _ <- Map.lookup i cheaps = propegateValue (setHeaps [i]) self
hunk ./Grin/PointsToAnalysis.hs 702
-            papp ('P':cs) as x | (n','_':rs) <- span isDigit cs, n <- read n', n > 1 = return $ setNodes [((toAtom $ 'P':(show $ n -  (1::Int)) ++ "_" ++ rs),(as ++ [x]))]
-            papp _ _ _ = fail "not papp"
-            papp' ('P':'1':'_':xs)  = return $ self `isSuperSetOf` (fst $ runIdentity $ Map.lookup (toAtom $ 'f':xs) funcMap) -- cp (Func (toAtom $ 'f':xs))
-            papp' _  = fail "not papp'"
-            incp ('P':cs) | (n','_':rs) <- span isDigit cs, n <- read n', n > 1 = return (toAtom $ 'P':(show $ n -  (1::Int)) ++ "_" ++ rs)
+            papp'' t i a
+                | Just (1,fn) <- tagUnfunction t = return $ do
+                    av <- getArg fn i
+                    av `isSuperSetOf` value a
+                | otherwise = fail "not papp''"
+            papp' t x'
+                | Just (1,fn) <- tagUnfunction t = return $ do
+                    self `isSuperSetOf` (fst $ runIdentity $ Map.lookup fn funcMap) -- cp (Func (toAtom $ 'f':xs))
+                    (ts,_) <- findArgsType (grinTypeEnv grin) fn
+                    av <- getArg fn (length ts - 1)
+                    av `isSuperSetOf` x'
+                | otherwise = fail "not papp'"
+            incp t | Just (n,fn) <- tagUnfunction t, n > 1 = return (partialTag fn (n - 1))
hunk ./Grin/PointsToAnalysis.hs 716
+            allNodes x = snub $ (Set.toList $ getNodes x) ++ (fsts $ Map.keys (getNodeArgs x))
hunk ./Grin/PointsToAnalysis.hs 724
-
-
hunk ./Grin/PointsToAnalysis.hs 754
-        --simplePos (Ptr v) = liftM fst $  Map.lookup v heapMap