[project @ 1996-02-06 14:32:22 by dnt]
[ghc-hetmet.git] / ghc / compiler / stranal / SaLib.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface SaLib where
3 import BasicLit(BasicLit)
4 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
5 import CostCentre(CostCentre)
6 import Id(Id)
7 import IdEnv(IdEnv(..))
8 import IdInfo(Demand, StrictnessInfo)
9 import Maybes(Labda)
10 import Outputable(Outputable)
11 import PlainCore(PlainCoreExpr(..))
12 import PrimOps(PrimOp)
13 import TyVar(TyVar)
14 import UniType(UniType)
15 import UniqFM(UniqFM)
16 import Unique(Unique)
17 data AbsVal   = AbsTop | AbsBot | AbsProd [AbsVal] | AbsFun [Id] (CoreExpr Id Id) AbsValEnv | AbsApproxFun [Demand]
18 data AbsValEnv 
19 type AbsenceEnv = AbsValEnv
20 data AnalysisKind   = StrAnal | AbsAnal
21 data CoreExpr a b 
22 data Id 
23 type IdEnv a = UniqFM a
24 data Demand 
25 type PlainCoreExpr = CoreExpr Id Id
26 type StrAnalFlags = (Bool, Bool)
27 type StrictEnv = AbsValEnv
28 data UniqFM a 
29 data Unique 
30 absValFromStrictness :: AnalysisKind -> StrictnessInfo -> AbsVal
31 addOneToAbsValEnv :: AbsValEnv -> Id -> AbsVal -> AbsValEnv
32 getStrAnalFlags :: AbsValEnv -> (Bool, Bool)
33 growAbsValEnvList :: AbsValEnv -> [(Id, AbsVal)] -> AbsValEnv
34 lookupAbsValEnv :: AbsValEnv -> Id -> Labda AbsVal
35 nullAbsValEnv :: (Bool, Bool) -> AbsValEnv
36 instance Outputable AbsVal
37 instance Text AnalysisKind
38