[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / deforest / DefUtils.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 3 #-}
2 interface DefUtils where
3 import CoreSyn(CoreAtom, CoreCaseAlternatives, CoreExpr)
4 import DefSyn(DefBindee)
5 import Id(Id)
6 import SplitUniq(SplitUniqSupply)
7 import TyVar(TyVar)
8 import UniType(UniType)
9 data RenameResult   = NotRenaming | IsRenaming [(Id, Id)] | InconsistentRenaming [(Id, Id)]
10 atom2expr :: CoreAtom DefBindee -> CoreExpr Id DefBindee
11 consistent :: [(Id, Id)] -> Bool
12 deforestable :: Id -> Bool
13 foldrSUs :: (a -> b -> SplitUniqSupply -> b) -> b -> [a] -> SplitUniqSupply -> b
14 freeTyVars :: CoreExpr Id DefBindee -> [TyVar]
15 freeVars :: CoreExpr Id DefBindee -> [Id]
16 isArgId :: Id -> Bool
17 mkDefLetrec :: [(a, CoreExpr a b)] -> CoreExpr a b -> CoreExpr a b
18 newDefId :: UniType -> SplitUniqSupply -> Id
19 newTmpId :: UniType -> SplitUniqSupply -> Id
20 rebindExpr :: CoreExpr Id DefBindee -> SplitUniqSupply -> CoreExpr Id DefBindee
21 renameExprs :: CoreExpr Id DefBindee -> CoreExpr Id DefBindee -> SplitUniqSupply -> RenameResult
22 strip :: CoreExpr Id DefBindee -> CoreExpr Id DefBindee
23 stripAtom :: CoreAtom DefBindee -> CoreAtom DefBindee
24 stripCaseAlts :: CoreCaseAlternatives Id DefBindee -> CoreCaseAlternatives Id DefBindee
25 subst :: [(Id, CoreExpr Id DefBindee)] -> CoreExpr Id DefBindee -> SplitUniqSupply -> CoreExpr Id DefBindee
26 union :: Eq a => [a] -> [a] -> [a]
27