[project @ 1996-02-06 14:32:22 by dnt]
[ghc-hetmet.git] / ghc / compiler / simplCore / OccurAnal.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface OccurAnal where
3 import BasicLit(BasicLit)
4 import BinderInfo(BinderInfo, DuplicationDanger, FunOrArg, InsideSCC)
5 import CmdLineOpts(GlobalSwitch, SimplifierSwitch)
6 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
7 import CostCentre(CostCentre)
8 import Id(Id)
9 import PlainCore(PlainCoreExpr(..), PlainCoreProgram(..))
10 import PrimOps(PrimOp)
11 import TaggedCore(SimplifiableCoreBinding(..), SimplifiableCoreExpr(..))
12 import TyVar(TyVar)
13 import UniType(UniType)
14 import UniqFM(UniqFM)
15 data BinderInfo 
16 data GlobalSwitch 
17 data CoreBinding a b 
18 data CoreExpr a b 
19 data Id 
20 type PlainCoreExpr = CoreExpr Id Id
21 type PlainCoreProgram = [CoreBinding Id Id]
22 type SimplifiableCoreBinding = CoreBinding (Id, BinderInfo) Id
23 type SimplifiableCoreExpr = CoreExpr (Id, BinderInfo) Id
24 occurAnalyseBinds :: [CoreBinding Id Id] -> (GlobalSwitch -> Bool) -> (SimplifierSwitch -> Bool) -> [CoreBinding (Id, BinderInfo) Id]
25 occurAnalyseExpr :: UniqFM Id -> CoreExpr Id Id -> (UniqFM BinderInfo, CoreExpr (Id, BinderInfo) Id)
26 occurAnalyseGlobalExpr :: CoreExpr Id Id -> CoreExpr (Id, BinderInfo) Id
27