[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / deforest / Core2Def.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Core2Def where
3 import BinderInfo(BinderInfo)
4 import CmdLineOpts(GlobalSwitch, SwitchResult)
5 import CoreSyn(CoreBinding, CoreExpr)
6 import DefSyn(DefBindee, DefProgram(..))
7 import Id(Id, IdDetails)
8 import IdInfo(IdInfo)
9 import PlainCore(PlainCoreProgram(..))
10 import UniType(UniType)
11 import UniqFM(UniqFM)
12 import Unique(Unique)
13 data CoreBinding a b    {-# GHC_PRAGMA CoNonRec a (CoreExpr a b) | CoRec [(a, CoreExpr a b)] #-}
14 data DefBindee  {-# GHC_PRAGMA DefArgExpr (CoreExpr Id DefBindee) | DefArgVar Id | Label (CoreExpr Id DefBindee) (CoreExpr Id DefBindee) #-}
15 type DefProgram = [CoreBinding Id DefBindee]
16 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
17 type PlainCoreProgram = [CoreBinding Id Id]
18 c2d :: UniqFM (CoreExpr Id DefBindee) -> CoreExpr (Id, BinderInfo) Id -> CoreExpr Id DefBindee
19         {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LS" _N_ _N_ #-}
20 core2def :: (GlobalSwitch -> SwitchResult) -> [CoreBinding Id Id] -> [CoreBinding Id DefBindee]
21         {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SL" _N_ _N_ #-}
22