{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface StgSyn where import Bag(Bag) import BasicLit(BasicLit) import CharSeq(CSeq) import Class(Class, ClassOp) import CmdLineOpts(GlobalSwitch) import CostCentre(CostCentre) import HsBinds(Binds) import HsExpr(Expr) import HsMatches(GRHS, GRHSsAndBinds) import HsPat(InPat) import Id(Id) import IdEnv(IdEnv(..)) import IdInfo(IdInfo) import Maybes(Labda) import Name(Name) import NameTypes(FullName, ShortName) import Outputable(ExportFlag, NamedThing(..), Outputable(..)) import PreludePS(_PackedString) import PreludeRatio(Ratio(..)) import Pretty(Delay, PprStyle, Pretty(..), PrettyRep) import PrimKind(PrimKind) import PrimOps(PrimOp) import SrcLoc(SrcLoc) import TyCon(TyCon) import TyVar(TyVar, TyVarTemplate) import TyVarEnv(TyVarEnv(..)) import UniType(SigmaType(..), TauType(..), ThetaType(..), UniType) import UniqFM(UniqFM) import UniqSet(UniqSet(..)) import Unique(Unique) class NamedThing a where getExportFlag :: a -> ExportFlag isLocallyDefined :: a -> Bool getOrigName :: a -> (_PackedString, _PackedString) getOccurrenceName :: a -> _PackedString getInformingModules :: a -> [_PackedString] getSrcLoc :: a -> SrcLoc getTheUnique :: a -> Unique hasType :: a -> Bool getType :: a -> UniType fromPreludeCore :: a -> Bool class Outputable a where ppr :: PprStyle -> a -> Int -> Bool -> PrettyRep data Bag a data BasicLit data Class data ClassOp data CostCentre data Binds a b data Expr a b data GRHS a b data GRHSsAndBinds a b data InPat a data Id type IdEnv a = UniqFM a data IdInfo data Labda a data Name data FullName data ShortName data ExportFlag type PlainStgAtom = StgAtom Id type PlainStgBinding = StgBinding Id Id type PlainStgCaseAlternatives = StgCaseAlternatives Id Id type PlainStgCaseDefault = StgCaseDefault Id Id type PlainStgExpr = StgExpr Id Id type PlainStgLiveVars = UniqFM Id type PlainStgProgram = [StgBinding Id Id] type PlainStgRhs = StgRhs Id Id data PprStyle type Pretty = Int -> Bool -> PrettyRep data PrettyRep data PrimKind data PrimOp data SrcLoc data StgAtom a = StgVarAtom a | StgLitAtom BasicLit data StgBinderInfo = NoStgBinderInfo | StgBinderInfo Bool Bool Bool Bool Bool data StgBinding a b = StgNonRec a (StgRhs a b) | StgRec [(a, StgRhs a b)] data StgCaseAlternatives a b = StgAlgAlts UniType [(Id, [a], [Bool], StgExpr a b)] (StgCaseDefault a b) | StgPrimAlts UniType [(BasicLit, StgExpr a b)] (StgCaseDefault a b) data StgCaseDefault a b = StgNoDefault | StgBindDefault a Bool (StgExpr a b) data StgExpr a b = StgApp (StgAtom b) [StgAtom b] (UniqFM b) | StgConApp Id [StgAtom b] (UniqFM b) | StgPrimApp PrimOp [StgAtom b] (UniqFM b) | StgCase (StgExpr a b) (UniqFM b) (UniqFM b) Unique (StgCaseAlternatives a b) | StgLet (StgBinding a b) (StgExpr a b) | StgLetNoEscape (UniqFM b) (UniqFM b) (StgBinding a b) (StgExpr a b) | StgSCC UniType CostCentre (StgExpr a b) type StgLiveVars a = UniqFM a data StgRhs a b = StgRhsClosure CostCentre StgBinderInfo [b] UpdateFlag [a] (StgExpr a b) | StgRhsCon CostCentre Id [StgAtom b] data TyCon data TyVar data TyVarTemplate type TyVarEnv a = UniqFM a type SigmaType = UniType type TauType = UniType type ThetaType = [(Class, UniType)] data UniType data UniqFM a type UniqSet a = UniqFM a data Unique data UpdateFlag = ReEntrant | Updatable | SingleEntry collectExportedStgBinders :: [StgBinding Id Id] -> [Id] combineStgBinderInfo :: StgBinderInfo -> StgBinderInfo -> StgBinderInfo getAtomKind :: StgAtom Id -> PrimKind isLitLitStgAtom :: StgAtom a -> Bool pprPlainStgBinding :: PprStyle -> StgBinding Id Id -> Int -> Bool -> PrettyRep stgArgOcc :: StgBinderInfo stgArity :: StgRhs Id Id -> Int stgFakeFunAppOcc :: StgBinderInfo stgNoUpdHeapOcc :: StgBinderInfo stgNormalOcc :: StgBinderInfo stgStdHeapOcc :: StgBinderInfo stgUnsatOcc :: StgBinderInfo instance Eq BasicLit instance Eq Class instance Eq ClassOp instance Eq Id instance Eq PrimKind instance Eq PrimOp instance Eq TyCon instance Eq TyVar instance Eq TyVarTemplate instance Eq UniType instance Eq Unique instance Ord BasicLit instance Ord Class instance Ord ClassOp instance Ord Id instance Ord PrimKind instance Ord TyCon instance Ord TyVar instance Ord TyVarTemplate instance Ord Unique instance NamedThing Class instance NamedThing a => NamedThing (InPat a) instance NamedThing Id instance NamedThing FullName instance NamedThing ShortName instance NamedThing TyCon instance NamedThing TyVar instance NamedThing TyVarTemplate instance (Outputable a, Outputable b) => Outputable (a, b) instance (Outputable a, Outputable b, Outputable c) => Outputable (a, b, c) instance Outputable BasicLit instance Outputable Bool instance Outputable Class instance Outputable ClassOp instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Binds a b) instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (Expr a b) instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHS a b) instance (NamedThing a, Outputable a, NamedThing b, Outputable b) => Outputable (GRHSsAndBinds a b) instance Outputable a => Outputable (InPat a) instance Outputable Id instance Outputable FullName instance Outputable ShortName instance Outputable PrimKind instance Outputable PrimOp instance Outputable a => Outputable (StgAtom a) instance (Outputable a, Outputable b, Ord b) => Outputable (StgBinding a b) instance (Outputable a, Outputable b, Ord b) => Outputable (StgExpr a b) instance (Outputable a, Outputable b, Ord b) => Outputable (StgRhs a b) instance Outputable UpdateFlag instance Outputable TyCon instance Outputable TyVar instance Outputable TyVarTemplate instance Outputable UniType instance Outputable a => Outputable [a] instance Text Unique