df08cd69face1b008d1d29537714ecfd42b493c6
[ghc-hetmet.git] / ghc / compiler / main / MkIface.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface MkIface where
3 import Bag(Bag)
4 import CE(CE(..))
5 import CharSeq(CSeq)
6 import Class(Class)
7 import CmdLineOpts(GlobalSwitch)
8 import FiniteMap(FiniteMap)
9 import HsBinds(MonoBinds, Sig)
10 import HsDecls(FixityDecl)
11 import HsPat(InPat)
12 import Id(Id, IdDetails)
13 import IdInfo(IdInfo)
14 import Maybes(Labda)
15 import Name(Name)
16 import NameTypes(FullName, ShortName)
17 import PreludePS(_PackedString)
18 import Pretty(Delay, PrettyRep)
19 import SimplEnv(UnfoldingDetails)
20 import SrcLoc(SrcLoc)
21 import StgSyn(StgBinding, StgRhs)
22 import TCE(TCE(..))
23 import TcInstDcls(InstInfo)
24 import TyCon(TyCon)
25 import TyVar(TyVarTemplate)
26 import UniType(UniType)
27 import UniqFM(UniqFM)
28 import Unique(Unique)
29 data Bag a      {-# GHC_PRAGMA EmptyBag | UnitBag a | TwoBags (Bag a) (Bag a) | ListOfBags [Bag a] #-}
30 type CE = UniqFM Class
31 data GlobalSwitch
32         {-# GHC_PRAGMA ProduceC [Char] | ProduceS [Char] | ProduceHi [Char] | AsmTarget [Char] | ForConcurrent | Haskell_1_3 | GlasgowExts | CompilingPrelude | HideBuiltinNames | HideMostBuiltinNames | EnsureSplittableC [Char] | Verbose | PprStyle_User | PprStyle_Debug | PprStyle_All | DoCoreLinting | EmitArityChecks | OmitInterfacePragmas | OmitDerivedRead | OmitReexportedInstances | UnfoldingUseThreshold Int | UnfoldingCreationThreshold Int | UnfoldingOverrideThreshold Int | ReportWhyUnfoldingsDisallowed | UseGetMentionedVars | ShowPragmaNameErrs | NameShadowingNotOK | SigsRequired | SccProfilingOn | AutoSccsOnExportedToplevs | AutoSccsOnAllToplevs | AutoSccsOnIndividualCafs | SccGroup [Char] | DoTickyProfiling | DoSemiTagging | FoldrBuildOn | FoldrBuildTrace | SpecialiseImports | ShowImportSpecs | OmitUnspecialisedCode | SpecialiseOverloaded | SpecialiseUnboxed | SpecialiseAll | SpecialiseTrace | OmitBlackHoling | StgDoLetNoEscapes | IgnoreStrictnessPragmas | IrrefutableTuples | IrrefutableEverything | AllStrict | AllDemanded | D_dump_rif2hs | D_dump_rn4 | D_dump_tc | D_dump_deriv | D_dump_ds | D_dump_occur_anal | D_dump_simpl | D_dump_spec | D_dump_stranal | D_dump_deforest | D_dump_stg | D_dump_absC | D_dump_flatC | D_dump_realC | D_dump_asm | D_dump_core_passes | D_dump_core_passes_info | D_verbose_core2core | D_verbose_stg2stg | D_simplifier_stats #-}
33 data FixityDecl a       {-# GHC_PRAGMA InfixL a Int | InfixR a Int | InfixN a Int #-}
34 data Id         {-# GHC_PRAGMA Id Unique UniType IdInfo IdDetails #-}
35 data Name       {-# GHC_PRAGMA Short Unique ShortName | WiredInTyCon TyCon | WiredInVal Id | PreludeVal Unique FullName | PreludeTyCon Unique FullName Int Bool | PreludeClass Unique FullName | OtherTyCon Unique FullName Int Bool [Name] | OtherClass Unique FullName [Name] | OtherTopId Unique FullName | ClassOpName Unique Name _PackedString Int | Unbound _PackedString #-}
36 data PrettyRep  {-# GHC_PRAGMA MkPrettyRep CSeq (Delay Int) Bool Bool #-}
37 data StgBinding a b     {-# GHC_PRAGMA StgNonRec a (StgRhs a b) | StgRec [(a, StgRhs a b)] #-}
38 type TCE = UniqFM TyCon
39 data InstInfo   {-# GHC_PRAGMA InstInfo Class [TyVarTemplate] UniType [(Class, UniType)] [(Class, UniType)] Id [Id] (MonoBinds Name (InPat Name)) Bool _PackedString SrcLoc [Sig Name] #-}
40 data UniqFM a   {-# GHC_PRAGMA EmptyUFM | LeafUFM Int# a | NodeUFM Int# Int# (UniqFM a) (UniqFM a) #-}
41 mkInterface :: (GlobalSwitch -> Bool) -> _PackedString -> (_PackedString -> Bool, _PackedString -> Bool) -> UniqFM UnfoldingDetails -> FiniteMap TyCon [[Labda UniType]] -> ([FixityDecl Name], [Id], UniqFM Class, UniqFM TyCon, Bag InstInfo) -> [StgBinding Id Id] -> Int -> Bool -> PrettyRep
42         {-# GHC_PRAGMA _A_ 7 _U_ 222221122 _N_ _S_ "LLLLLU(LSSSL)L" _N_ _N_ #-}
43