1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface SimplCore where
4 import BasicLit(BasicLit)
5 import BinderInfo(BinderInfo)
6 import CmdLineOpts(CoreToDo, GlobalSwitch, SwitchResult)
7 import CoreSyn(CoreAtom, CoreBinding, CoreExpr)
8 import FiniteMap(FiniteMap)
10 import IdEnv(IdEnv(..))
11 import MagicUFs(MagicUnfoldingFun)
13 import PreludePS(_PackedString)
14 import Pretty(PprStyle)
15 import SimplEnv(FormSummary, UnfoldingDetails, UnfoldingGuidance)
16 import Specialise(SpecialiseData(..))
17 import SplitUniq(SplitUniqSupply)
19 import UniType(UniType)
22 data Bag a {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
23 type IdEnv a = UniqFM a
24 data UnfoldingDetails {-# GHC_PRAGMA NoUnfoldingDetails | LiteralForm BasicLit | OtherLiteralForm [BasicLit] | ConstructorForm Id [UniType] [CoreAtom Id] | OtherConstructorForm [Id] | GeneralForm Bool FormSummary (CoreExpr (Id, BinderInfo) Id) UnfoldingGuidance | MagicForm _PackedString MagicUnfoldingFun | IWantToBeINLINEd UnfoldingGuidance #-}
25 data SpecialiseData = SpecData Bool Bool [TyCon] [TyCon] (FiniteMap TyCon [[Labda UniType]]) (Bag (Id, [Labda UniType])) (Bag (Id, [Labda UniType])) (Bag (TyCon, [Labda UniType]))
26 data UniqFM a {-# GHC_PRAGMA EmptyUFM | LeafUFM Int# a | NodeUFM Int# Int# (UniqFM a) (UniqFM a) #-}
27 data Unique {-# GHC_PRAGMA MkUnique Int# #-}
28 core2core :: [CoreToDo] -> (GlobalSwitch -> SwitchResult) -> _PackedString -> PprStyle -> SplitUniqSupply -> [TyCon] -> FiniteMap TyCon [[Labda UniType]] -> [CoreBinding Id Id] -> _State _RealWorld -> (([CoreBinding Id Id], UniqFM UnfoldingDetails, SpecialiseData), _State _RealWorld)
29 {-# GHC_PRAGMA _A_ 9 _U_ 222222222 _N_ _S_ "SLLLLLLLL" _N_ _N_ #-}