e56b3cfa26f79a6b79250bbfc7e6ad6b7f0b09b3
[ghc-hetmet.git] / ghc / compiler / stranal / WwLib.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface WwLib where
3 import BasicLit(BasicLit)
4 import CmdLineOpts(GlobalSwitch)
5 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
6 import CostCentre(CostCentre)
7 import Id(Id)
8 import IdInfo(Demand, StrictnessInfo)
9 import Maybes(Labda, MaybeErr)
10 import PlainCore(PlainCoreBinding(..), PlainCoreExpr(..))
11 import PrimOps(PrimOp)
12 import SplitUniq(SUniqSM(..), SplitUniqSupply)
13 import TyVar(TyVar)
14 import UniType(UniType)
15 import Unique(Unique)
16 infixr 9 `thenWw`
17 data GlobalSwitch 
18 data CoreBinding a b 
19 data CoreExpr a b 
20 data Id 
21 data Demand 
22 data MaybeErr a b 
23 type PlainCoreBinding = CoreBinding Id Id
24 type PlainCoreExpr = CoreExpr Id Id
25 type SUniqSM a = SplitUniqSupply -> a
26 data SplitUniqSupply 
27 data TyVar 
28 data UniType 
29 data Unique 
30 data WwBinding   = WwLet [CoreBinding Id Id] | WwCase (CoreExpr Id Id -> CoreExpr Id Id)
31 type WwM a = SplitUniqSupply -> (GlobalSwitch -> Bool) -> a
32 getUniqueWw :: SplitUniqSupply -> (GlobalSwitch -> Bool) -> Unique
33 mAX_WORKER_ARGS :: Int
34 mapWw :: (a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b) -> [a] -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> [b]
35 mkWwBodies :: UniType -> [TyVar] -> [Id] -> [Demand] -> SplitUniqSupply -> Labda (Id -> CoreExpr Id Id, CoreExpr Id Id -> CoreExpr Id Id, StrictnessInfo, UniType -> UniType)
36 returnWw :: a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> a
37 thenWw :: (SplitUniqSupply -> (GlobalSwitch -> Bool) -> a) -> (a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b) -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b
38 uniqSMtoWwM :: (SplitUniqSupply -> a) -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> a
39