[project @ 1996-01-08 20:28:12 by partain]
[ghc-hetmet.git] / ghc / compiler / deforest / Def2Core.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Def2Core where
3 import CoreSyn(CoreBinding, CoreExpr)
4 import DefSyn(DefBindee, DefBinding(..))
5 import Id(Id, IdDetails)
6 import IdInfo(IdInfo)
7 import PlainCore(PlainCoreProgram(..))
8 import SplitUniq(SUniqSM(..), SplitUniqSupply)
9 import UniType(UniType)
10 import Unique(Unique)
11 data CoreBinding a b    {-# GHC_PRAGMA CoNonRec a (CoreExpr a b) | CoRec [(a, CoreExpr a b)] #-}
12 data DefBindee  {-# GHC_PRAGMA DefArgExpr (CoreExpr Id DefBindee) | DefArgVar Id | Label (CoreExpr Id DefBindee) (CoreExpr Id DefBindee) #-}
13 type DefBinding = CoreBinding Id DefBindee
14 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
15 type PlainCoreProgram = [CoreBinding Id Id]
16 type SUniqSM a = SplitUniqSupply -> a
17 d2c :: CoreExpr Id DefBindee -> SplitUniqSupply -> CoreExpr Id Id
18         {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
19 def2core :: [CoreBinding Id DefBindee] -> SplitUniqSupply -> [CoreBinding Id Id]
20         {-# GHC_PRAGMA _A_ 1 _U_ 12 _N_ _S_ "S" _N_ _N_ #-}
21 defPanic :: [Char] -> [Char] -> CoreExpr Id DefBindee -> SplitUniqSupply -> a
22         {-# GHC_PRAGMA _A_ 3 _U_ 1111 _N_ _S_ _!_ _N_ _N_ #-}
23