- not_a_calf_already IsCafCC = False
- not_a_calf_already _ = True
-cafifyCC cc = panic ("cafifyCC"++(showCostCentre PprDebug False cc))
-
--- WDP 95/07: pretty dodgy
-unCafifyCC (NormalCC kind m g is_dupd IsCafCC) = NormalCC kind m g is_dupd IsNotCafCC
-unCafifyCC (AllCafsCC _ _) = CurrentCC
-unCafifyCC PreludeCafsCC = CurrentCC
-unCafifyCC (AllDictsCC _ _ _) = CurrentCC
-unCafifyCC (PreludeDictsCC _) = CurrentCC
-unCafifyCC other_cc = other_cc
-
-dupifyCC (AllDictsCC m g _) = AllDictsCC m g ADupdCC
-dupifyCC (PreludeDictsCC _) = PreludeDictsCC ADupdCC
-dupifyCC (NormalCC kind m g is_dupd is_caf)
- = NormalCC kind m g ADupdCC is_caf
-dupifyCC cc = panic ("dupifyCC"++(showCostCentre PprDebug False cc))
-
-isCafCC, isDictCC, isDupdCC :: CostCentre -> Bool
-
-isCafCC (AllCafsCC _ _) = True
-isCafCC PreludeCafsCC = True
-isCafCC (NormalCC _ _ _ _ IsCafCC) = True
-isCafCC _ = False
-
-isDictCC (AllDictsCC _ _ _) = True
-isDictCC (PreludeDictsCC _) = True
-isDictCC (NormalCC (DictCC _) _ _ _ _) = True
-isDictCC _ = False
-
-isDupdCC (AllDictsCC _ _ ADupdCC) = True
-isDupdCC (PreludeDictsCC ADupdCC) = True
-isDupdCC (NormalCC _ _ _ ADupdCC _) = True
-isDupdCC _ = False
-
-setToAbleCostCentre :: CostCentre -> Bool
- -- Is this a cost-centre to which CCC might reasonably
- -- be set? setToAbleCostCentre is allowed to panic on
- -- "nonsense" cases, too...
+ not_a_caf_already CafCC = False
+ not_a_caf_already _ = True
+cafifyCC cc = pprPanic "cafifyCC" (ppr cc)
+
+dupifyCC cc = cc {cc_is_dupd = DupdCC}
+
+isEmptyCC, isCafCC, isDupdCC :: CostCentre -> Bool
+
+isEmptyCC (NoCostCentre) = True
+isEmptyCC _ = False
+
+isCafCC (AllCafsCC {}) = True
+isCafCC (NormalCC {cc_is_caf = CafCC}) = True
+isCafCC _ = False
+
+isDupdCC (NormalCC {cc_is_dupd = DupdCC}) = True
+isDupdCC _ = False
+
+isSccCountCostCentre :: CostCentre -> Bool
+ -- Is this a cost-centre which records scc counts