{-# GHC_PRAGMA INTERFACE VERSION 5 #-} interface FreeVars where import AnnCoreSyn(AnnCoreBinding, AnnCoreCaseAlternatives, AnnCoreCaseDefault, AnnCoreExpr', AnnCoreExpr(..)) import BasicLit(BasicLit) import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr) import CostCentre(CostCentre) import Id(Id) import PrimOps(PrimOp) import TyVar(TyVar) import UniType(UniType) import UniqFM(UniqFM) import UniqSet(IdSet(..), TyVarSet(..), UniqSet(..)) data AnnCoreBinding a b c data AnnCoreCaseAlternatives a b c data AnnCoreCaseDefault a b c type AnnCoreExpr a b c = (c, AnnCoreExpr' a b c) data AnnCoreExpr' a b c data CoreExpr a b type CoreExprWithFVs = (FVInfo, AnnCoreExpr' Id Id FVInfo) type FVCoreBinding = CoreBinding (Id, UniqFM Id) Id type FVCoreExpr = CoreExpr (Id, UniqFM Id) Id data FVInfo = FVInfo (UniqFM Id) (UniqFM TyVar) LeakInfo data Id data UniType type IdSet = UniqFM Id data LeakInfo = MightLeak | LeakFree Int type TyVarSet = UniqFM TyVar type UniqSet a = UniqFM a addTopBindsFVs :: (UniqFM Id -> Id -> Bool) -> [CoreBinding Id Id] -> ([CoreBinding (Id, UniqFM Id) Id], UniqFM Id) freeTyVarsOf :: (FVInfo, AnnCoreExpr' Id Id FVInfo) -> UniqFM TyVar freeVars :: CoreExpr Id Id -> (FVInfo, AnnCoreExpr' Id Id FVInfo) freeVarsOf :: (FVInfo, AnnCoreExpr' Id Id FVInfo) -> UniqFM Id