a6940eb0d31b620106980ab300521631c99e20f4
[ghc-hetmet.git] / ghc / compiler / simplStg / StgSATMonad.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface StgSATMonad where
3 import Class(Class)
4 import Id(Id, IdDetails)
5 import IdInfo(IdInfo)
6 import SATMonad(Arg)
7 import SplitUniq(SplitUniqSupply)
8 import StgSyn(PlainStgExpr(..), StgBinding, StgExpr, StgRhs)
9 import TyCon(TyCon)
10 import TyVar(TyVar, TyVarTemplate)
11 import UniType(UniType)
12 import UniqFM(UniqFM)
13 import Unique(Unique)
14 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
15 data SplitUniqSupply    {-# GHC_PRAGMA MkSplitUniqSupply Int SplitUniqSupply SplitUniqSupply #-}
16 type PlainStgExpr = StgExpr Id Id
17 data UniType    {-# GHC_PRAGMA UniTyVar TyVar | UniFun UniType UniType | UniData TyCon [UniType] | UniSyn TyCon [UniType] UniType | UniDict Class UniType | UniTyVarTemplate TyVarTemplate | UniForall TyVarTemplate UniType #-}
18 getArgLists :: StgRhs Id Id -> ([Arg UniType], [Arg Id])
19         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
20 saTransform :: Id -> StgRhs Id Id -> SplitUniqSupply -> UniqFM ([Arg UniType], [Arg Id]) -> (StgBinding Id Id, UniqFM ([Arg UniType], [Arg Id]))
21         {-# GHC_PRAGMA _A_ 4 _U_ 2212 _N_ _S_ "LLU(LLL)L" _N_ _N_ #-}
22