1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
3 import BasicLit(BasicLit)
4 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
5 import CostCentre(CostCentre)
6 import Id(Id, IdDetails)
7 import IdEnv(IdEnv(..))
8 import IdInfo(Demand, IdInfo, StrictnessInfo)
10 import Outputable(Outputable)
11 import PlainCore(PlainCoreExpr(..))
12 import PrimOps(PrimOp)
14 import UniType(UniType)
17 data AbsVal = AbsTop | AbsBot | AbsProd [AbsVal] | AbsFun [Id] (CoreExpr Id Id) AbsValEnv | AbsApproxFun [Demand]
18 data AbsValEnv {-# GHC_PRAGMA AbsValEnv Bool (UniqFM AbsVal) #-}
19 type AbsenceEnv = AbsValEnv
20 data AnalysisKind = StrAnal | AbsAnal
21 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) #-}
22 data Id {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
23 type IdEnv a = UniqFM a
24 data Demand {-# GHC_PRAGMA WwLazy Bool | WwStrict | WwUnpack [Demand] | WwPrim | WwEnum #-}
25 type PlainCoreExpr = CoreExpr Id Id
26 type StrictEnv = AbsValEnv
27 data UniqFM a {-# GHC_PRAGMA EmptyUFM | LeafUFM Int# a | NodeUFM Int# Int# (UniqFM a) (UniqFM a) #-}
28 data Unique {-# GHC_PRAGMA MkUnique Int# #-}
29 absValFromStrictness :: AnalysisKind -> StrictnessInfo -> AbsVal
30 {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "LS" _N_ _N_ #-}
31 addOneToAbsValEnv :: AbsValEnv -> Id -> AbsVal -> AbsValEnv
32 {-# GHC_PRAGMA _A_ 3 _U_ 112 _N_ _S_ "U(LL)LL" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
33 growAbsValEnvList :: AbsValEnv -> [(Id, AbsVal)] -> AbsValEnv
34 {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "U(LL)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
35 lookupAbsValEnv :: AbsValEnv -> Id -> Labda AbsVal
36 {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(EL)L" {_A_ 3 _U_ 121 _N_ _N_ _N_ _N_} _N_ _N_ #-}
37 nullAbsValEnv :: Bool -> AbsValEnv
38 {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
39 instance Outputable AbsVal
40 {-# GHC_PRAGMA _M_ SaLib {-dfun-} _A_ 2 _N_ _N_ _N_ _N_ _N_
41 ppr = _A_ 2 _U_ 2122 _N_ _S_ "LS" _N_ _N_ #-}
42 instance Text AnalysisKind
43 {-# 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_
44 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_,
45 showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LE" _N_ _N_,
46 readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
47 showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}