{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface WwLib where import BasicLit(BasicLit) import CmdLineOpts(GlobalSwitch) import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr) import CostCentre(CostCentre) import Id(Id) import IdInfo(Demand, StrictnessInfo) import Maybes(Labda, MaybeErr) import PlainCore(PlainCoreBinding(..), PlainCoreExpr(..)) import PrimOps(PrimOp) import SplitUniq(SUniqSM(..), SplitUniqSupply) import TyVar(TyVar) import UniType(UniType) import Unique(Unique) infixr 9 `thenWw` data GlobalSwitch data CoreBinding a b data CoreExpr a b data Id data Demand data MaybeErr a b type PlainCoreBinding = CoreBinding Id Id type PlainCoreExpr = CoreExpr Id Id type SUniqSM a = SplitUniqSupply -> a data SplitUniqSupply data TyVar data UniType data Unique data WwBinding = WwLet [CoreBinding Id Id] | WwCase (CoreExpr Id Id -> CoreExpr Id Id) type WwM a = SplitUniqSupply -> (GlobalSwitch -> Bool) -> a getUniqueWw :: SplitUniqSupply -> (GlobalSwitch -> Bool) -> Unique mAX_WORKER_ARGS :: Int mapWw :: (a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b) -> [a] -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> [b] mkWwBodies :: UniType -> [TyVar] -> [Id] -> [Demand] -> SplitUniqSupply -> Labda (Id -> CoreExpr Id Id, CoreExpr Id Id -> CoreExpr Id Id, StrictnessInfo, UniType -> UniType) returnWw :: a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> a thenWw :: (SplitUniqSupply -> (GlobalSwitch -> Bool) -> a) -> (a -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b) -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> b uniqSMtoWwM :: (SplitUniqSupply -> a) -> SplitUniqSupply -> (GlobalSwitch -> Bool) -> a