[project @ 1996-02-06 14:32:22 by dnt]
[ghc-hetmet.git] / ghc / compiler / coreSyn / CoreFuns.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface CoreFuns where
3 import BasicLit(BasicLit)
4 import CoreSyn(CoreAtom, CoreBinding, CoreCaseAlternatives, CoreExpr)
5 import CostCentre(CostCentre)
6 import Id(Id)
7 import IdEnv(IdEnv(..))
8 import Maybes(Labda)
9 import PrimOps(PrimOp)
10 import TyVar(TyVar)
11 import TyVarEnv(TyVarEnv(..))
12 import UniType(UniType)
13 import UniqFM(UniqFM)
14 import Unique(UniqSM(..), Unique, UniqueSupply)
15 data CoreAtom a 
16 data CoreExpr a b 
17 data Id 
18 type IdEnv a = UniqFM a
19 data Labda a 
20 type TyVarEnv a = UniqFM a
21 data UniType 
22 data UniqFM a 
23 type UniqSM a = UniqueSupply -> (UniqueSupply, a)
24 data Unique 
25 data UniqueSupply 
26 atomToExpr :: CoreAtom b -> CoreExpr a b
27 bindersOf :: CoreBinding b a -> [b]
28 coreExprArity :: (Id -> Labda (CoreExpr a Id)) -> CoreExpr a Id -> Int
29 digForLambdas :: CoreExpr a b -> ([TyVar], [a], CoreExpr a b)
30 escErrorMsg :: [Char] -> [Char]
31 exprSmallEnoughToDup :: CoreExpr a Id -> Bool
32 instCoreBindings :: UniqueSupply -> [CoreBinding Id Id] -> (UniqueSupply, [CoreBinding Id Id])
33 instCoreExpr :: UniqueSupply -> CoreExpr Id Id -> (UniqueSupply, CoreExpr Id Id)
34 isWrapperFor :: CoreExpr Id Id -> Id -> Bool
35 manifestlyBottom :: CoreExpr a Id -> Bool
36 manifestlyWHNF :: CoreExpr a Id -> Bool
37 maybeErrorApp :: CoreExpr a Id -> Labda UniType -> Labda (CoreExpr a Id)
38 mkCoApps :: CoreExpr Id Id -> [CoreExpr Id Id] -> UniqueSupply -> (UniqueSupply, CoreExpr Id Id)
39 mkCoLam :: [a] -> CoreExpr a b -> CoreExpr a b
40 mkCoLetAny :: CoreBinding Id Id -> CoreExpr Id Id -> CoreExpr Id Id
41 mkCoLetNoUnboxed :: CoreBinding Id Id -> CoreExpr Id Id -> CoreExpr Id Id
42 mkCoLetUnboxedToCase :: CoreBinding Id Id -> CoreExpr Id Id -> CoreExpr Id Id
43 mkCoLetrecAny :: [(Id, CoreExpr Id Id)] -> CoreExpr Id Id -> CoreExpr Id Id
44 mkCoLetrecNoUnboxed :: [(Id, CoreExpr Id Id)] -> CoreExpr Id Id -> CoreExpr Id Id
45 mkCoLetsAny :: [CoreBinding Id Id] -> CoreExpr Id Id -> CoreExpr Id Id
46 mkCoLetsNoUnboxed :: [CoreBinding Id Id] -> CoreExpr Id Id -> CoreExpr Id Id
47 mkCoLetsUnboxedToCase :: [CoreBinding Id Id] -> CoreExpr Id Id -> CoreExpr Id Id
48 mkCoTyApps :: CoreExpr a b -> [UniType] -> CoreExpr a b
49 mkCoTyLam :: [TyVar] -> CoreExpr a b -> CoreExpr a b
50 mkCoreIfThenElse :: CoreExpr a Id -> CoreExpr a Id -> CoreExpr a Id -> CoreExpr a Id
51 mkErrorCoApp :: UniType -> Id -> [Char] -> CoreExpr Id Id
52 mkFunction :: [TyVar] -> [a] -> CoreExpr a b -> CoreExpr a b
53 nonErrorRHSs :: CoreCaseAlternatives a Id -> [CoreExpr a Id]
54 pairsFromCoreBinds :: [CoreBinding a b] -> [(a, CoreExpr a b)]
55 squashableDictishCcExpr :: CostCentre -> CoreExpr a b -> Bool
56 substCoreExpr :: UniqueSupply -> UniqFM (CoreExpr Id Id) -> UniqFM UniType -> CoreExpr Id Id -> (UniqueSupply, CoreExpr Id Id)
57 substCoreExprUS :: UniqFM (CoreExpr Id Id) -> UniqFM UniType -> CoreExpr Id Id -> UniqueSupply -> (UniqueSupply, CoreExpr Id Id)
58 typeOfCoreAlts :: CoreCaseAlternatives Id Id -> UniType
59 typeOfCoreExpr :: CoreExpr Id Id -> UniType
60 unTagBinders :: CoreExpr (Id, a) b -> CoreExpr Id b
61 unTagBindersAlts :: CoreCaseAlternatives (Id, a) b -> CoreCaseAlternatives Id b
62