import BasicLit(BasicLit)
import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
import CostCentre(CostCentre)
-import Id(Id, IdDetails)
+import Id(Id)
import IdEnv(IdEnv(..))
-import IdInfo(Demand, IdInfo, StrictnessInfo)
+import IdInfo(Demand, StrictnessInfo)
import Maybes(Labda)
import Outputable(Outputable)
import PlainCore(PlainCoreExpr(..))
import UniqFM(UniqFM)
import Unique(Unique)
data AbsVal = AbsTop | AbsBot | AbsProd [AbsVal] | AbsFun [Id] (CoreExpr Id Id) AbsValEnv | AbsApproxFun [Demand]
-data AbsValEnv {-# GHC_PRAGMA AbsValEnv Bool (UniqFM AbsVal) #-}
+data AbsValEnv
type AbsenceEnv = AbsValEnv
data AnalysisKind = StrAnal | AbsAnal
-data CoreExpr a b {-# GHC_PRAGMA CoVar b | CoLit BasicLit | CoCon Id [UniType] [CoreAtom b] | CoPrim PrimOp [UniType] [CoreAtom b] | CoLam [a] (CoreExpr a b) | CoTyLam TyVar (CoreExpr a b) | CoApp (CoreExpr a b) (CoreAtom b) | CoTyApp (CoreExpr a b) UniType | CoCase (CoreExpr a b) (CoreCaseAlternatives a b) | CoLet (CoreBinding a b) (CoreExpr a b) | CoSCC CostCentre (CoreExpr a b) #-}
-data Id {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
+data CoreExpr a b
+data Id
type IdEnv a = UniqFM a
-data Demand {-# GHC_PRAGMA WwLazy Bool | WwStrict | WwUnpack [Demand] | WwPrim | WwEnum #-}
+data Demand
type PlainCoreExpr = CoreExpr Id Id
+type StrAnalFlags = (Bool, Bool)
type StrictEnv = AbsValEnv
-data UniqFM a {-# GHC_PRAGMA EmptyUFM | LeafUFM Int# a | NodeUFM Int# Int# (UniqFM a) (UniqFM a) #-}
-data Unique {-# GHC_PRAGMA MkUnique Int# #-}
+data UniqFM a
+data Unique
absValFromStrictness :: AnalysisKind -> StrictnessInfo -> AbsVal
- {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
addOneToAbsValEnv :: AbsValEnv -> Id -> AbsVal -> AbsValEnv
- {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(LL)LL" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getStrAnalFlags :: AbsValEnv -> (Bool, Bool)
growAbsValEnvList :: AbsValEnv -> [(Id, AbsVal)] -> AbsValEnv
- {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
lookupAbsValEnv :: AbsValEnv -> Id -> Labda AbsVal
- {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(EL)L" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
-nullAbsValEnv :: Bool -> AbsValEnv
- {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
+nullAbsValEnv :: (Bool, Bool) -> AbsValEnv
instance Outputable AbsVal
- {-# GHC_PRAGMA _M_ SaLib {-dfun-} _A_ 2 _N_ _N_ _N_ _N_ _N_
- ppr = _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
instance Text AnalysisKind
- {-# GHC_PRAGMA _M_ SaLib {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(AnalysisKind, [Char])]), (Int -> AnalysisKind -> [Char] -> [Char]), ([Char] -> [([AnalysisKind], [Char])]), ([AnalysisKind] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (AnalysisKind), _CONSTM_ Text showsPrec (AnalysisKind), _CONSTM_ Text readList (AnalysisKind), _CONSTM_ Text showList (AnalysisKind)] _N_
- readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(AnalysisKind, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
- showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
- readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
- showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}