[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / compiler / prelude / AbsPrel.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface AbsPrel where
3 import Class(Class)
4 import CmdLineOpts(GlobalSwitch)
5 import CoreSyn(CoreExpr)
6 import HeapOffs(HeapOffset)
7 import Id(Id)
8 import Maybes(Labda)
9 import Name(Name)
10 import NameTypes(FullName, ShortName)
11 import Outputable(NamedThing, Outputable)
12 import PlainCore(PlainCoreExpr(..))
13 import PrelFuns(gLASGOW_MISC, gLASGOW_ST, pRELUDE, pRELUDE_BUILTIN, pRELUDE_CORE, pRELUDE_IO, pRELUDE_LIST, pRELUDE_PRIMIO, pRELUDE_PS, pRELUDE_RATIO, pRELUDE_TEXT)
14 import PrelVals(aBSENT_ERROR_ID, buildId, eRROR_ID, foldlId, foldrId, integerMinusOneId, integerPlusOneId, integerZeroId, mkBuild, mkFoldl, mkFoldr, pAT_ERROR_ID, packStringForCId, realWorldPrimId, unpackCString2Id, unpackCStringAppendId, unpackCStringId, voidPrimId)
15 import PreludePS(_PackedString)
16 import Pretty(PprStyle, PrettyRep)
17 import PrimKind(PrimKind)
18 import PrimOps(HeapRequirement(..), PrimOp(..), PrimOpResultInfo(..), fragilePrimOp, getPrimOpResultInfo, isCompareOp, pprPrimOp, primOpCanTriggerGC, primOpHeapReq, primOpIsCheap, primOpNameInfo, primOpNeedsWrapper, primOpOkForSpeculation, showPrimOp, typeOfPrimOp)
19 import TyCon(TyCon)
20 import TyVar(TyVar, TyVarTemplate)
21 import TysPrim(addrPrimTy, addrPrimTyCon, charPrimTy, charPrimTyCon, doublePrimTy, doublePrimTyCon, floatPrimTy, floatPrimTyCon, intPrimTy, intPrimTyCon, realWorldStatePrimTy, realWorldTy, realWorldTyCon, voidPrimTy, wordPrimTy, wordPrimTyCon)
22 import TysWiredIn(addrDataCon, addrTy, addrTyCon, boolTy, boolTyCon, charDataCon, charTy, charTyCon, cmpTagTy, consDataCon, doubleDataCon, doubleTy, doubleTyCon, eqPrimDataCon, falseDataCon, floatDataCon, floatTy, floatTyCon, getStatePairingConInfo, gtPrimDataCon, intDataCon, intTy, intTyCon, integerDataCon, integerTy, integerTyCon, liftDataCon, liftTyCon, listTyCon, ltPrimDataCon, mkLiftTy, mkListTy, mkPrimIoTy, mkTupleTy, nilDataCon, ratioDataCon, rationalTy, rationalTyCon, realWorldStateTy, stateDataCon, stringTy, trueDataCon, unitTy, wordDataCon, wordTy, wordTyCon)
23 import UniType(TauType(..), UniType)
24 import Unique(Unique)
25 data GlobalSwitch 
26 data CoreExpr a b 
27 data HeapOffset 
28 data Id 
29 data Labda a 
30 data Name 
31 type PlainCoreExpr = CoreExpr Id Id
32 data PprStyle 
33 data PrimKind 
34 data HeapRequirement   = NoHeapRequired | FixedHeapRequired HeapOffset | VariableHeapRequired
35 data PrimOp
36   = CharGtOp | CharGeOp | CharEqOp | CharNeOp | CharLtOp | CharLeOp | IntGtOp | IntGeOp | IntEqOp | IntNeOp | IntLtOp | IntLeOp | WordGtOp | WordGeOp | WordEqOp | WordNeOp | WordLtOp | WordLeOp | AddrGtOp | AddrGeOp | AddrEqOp | AddrNeOp | AddrLtOp | AddrLeOp | FloatGtOp | FloatGeOp | FloatEqOp | FloatNeOp | FloatLtOp | FloatLeOp | DoubleGtOp | DoubleGeOp | DoubleEqOp | DoubleNeOp | DoubleLtOp | DoubleLeOp | OrdOp | ChrOp | IntAddOp | IntSubOp | IntMulOp | IntQuotOp | IntDivOp | IntRemOp | IntNegOp | IntAbsOp | AndOp | OrOp | NotOp | SllOp | SraOp | SrlOp | ISllOp | ISraOp | ISrlOp | Int2WordOp | Word2IntOp | Int2AddrOp | Addr2IntOp | FloatAddOp | FloatSubOp | FloatMulOp | FloatDivOp | FloatNegOp | Float2IntOp | Int2FloatOp | FloatExpOp | FloatLogOp | FloatSqrtOp | FloatSinOp | FloatCosOp | FloatTanOp | FloatAsinOp | FloatAcosOp | FloatAtanOp | FloatSinhOp | FloatCoshOp | FloatTanhOp | FloatPowerOp | DoubleAddOp | DoubleSubOp | DoubleMulOp | DoubleDivOp | DoubleNegOp | Double2IntOp | Int2DoubleOp | Double2FloatOp | Float2DoubleOp | DoubleExpOp | DoubleLogOp | DoubleSqrtOp | DoubleSinOp | DoubleCosOp | DoubleTanOp | DoubleAsinOp | DoubleAcosOp | DoubleAtanOp | DoubleSinhOp | DoubleCoshOp | DoubleTanhOp | DoublePowerOp | IntegerAddOp | IntegerSubOp | IntegerMulOp | IntegerQuotRemOp | IntegerDivModOp | IntegerNegOp | IntegerCmpOp | Integer2IntOp | Int2IntegerOp | Word2IntegerOp | Addr2IntegerOp | FloatEncodeOp | FloatDecodeOp | DoubleEncodeOp | DoubleDecodeOp | NewArrayOp | NewByteArrayOp PrimKind | SameMutableArrayOp | SameMutableByteArrayOp | ReadArrayOp | WriteArrayOp | IndexArrayOp | ReadByteArrayOp PrimKind | WriteByteArrayOp PrimKind | IndexByteArrayOp PrimKind | IndexOffAddrOp PrimKind | UnsafeFreezeArrayOp | UnsafeFreezeByteArrayOp | NewSynchVarOp | TakeMVarOp | PutMVarOp | ReadIVarOp | WriteIVarOp | MakeStablePtrOp | DeRefStablePtrOp | CCallOp _PackedString Bool Bool [UniType] UniType | ErrorIOPrimOp | ReallyUnsafePtrEqualityOp | SeqOp | ParOp | ForkOp | DelayOp | WaitOp
37 data PrimOpResultInfo   = ReturnsPrim PrimKind | ReturnsAlg TyCon
38 data TyCon 
39 type TauType = UniType
40 data UniType 
41 data Unique 
42 gLASGOW_MISC :: _PackedString
43 gLASGOW_ST :: _PackedString
44 pRELUDE :: _PackedString
45 pRELUDE_BUILTIN :: _PackedString
46 pRELUDE_CORE :: _PackedString
47 pRELUDE_IO :: _PackedString
48 pRELUDE_LIST :: _PackedString
49 pRELUDE_PRIMIO :: _PackedString
50 pRELUDE_PS :: _PackedString
51 pRELUDE_RATIO :: _PackedString
52 pRELUDE_TEXT :: _PackedString
53 aBSENT_ERROR_ID :: Id
54 buildId :: Id
55 eRROR_ID :: Id
56 foldlId :: Id
57 foldrId :: Id
58 integerMinusOneId :: Id
59 integerPlusOneId :: Id
60 integerZeroId :: Id
61 mkBuild :: UniType -> TyVar -> Id -> Id -> Id -> CoreExpr Id Id -> CoreExpr Id Id
62 mkFoldl :: UniType -> UniType -> Id -> Id -> Id -> CoreExpr a Id
63 mkFoldr :: UniType -> UniType -> Id -> Id -> Id -> CoreExpr a Id
64 fragilePrimOp :: PrimOp -> Bool
65 getPrimOpResultInfo :: PrimOp -> PrimOpResultInfo
66 isCompareOp :: PrimOp -> Bool
67 addrPrimTy :: UniType
68 addrPrimTyCon :: TyCon
69 charPrimTy :: UniType
70 charPrimTyCon :: TyCon
71 doublePrimTy :: UniType
72 doublePrimTyCon :: TyCon
73 floatPrimTy :: UniType
74 floatPrimTyCon :: TyCon
75 intPrimTy :: UniType
76 intPrimTyCon :: TyCon
77 addrDataCon :: Id
78 addrTy :: UniType
79 addrTyCon :: TyCon
80 boolTy :: UniType
81 boolTyCon :: TyCon
82 builtinNameInfo :: (GlobalSwitch -> Bool) -> (_PackedString -> Labda Name, _PackedString -> Labda Name)
83 charDataCon :: Id
84 charTy :: UniType
85 charTyCon :: TyCon
86 cmpTagTy :: UniType
87 consDataCon :: Id
88 doubleDataCon :: Id
89 doubleTy :: UniType
90 doubleTyCon :: TyCon
91 eqPrimDataCon :: Id
92 falseDataCon :: Id
93 floatDataCon :: Id
94 floatTy :: UniType
95 floatTyCon :: TyCon
96 getStatePairingConInfo :: UniType -> (Id, UniType)
97 gtPrimDataCon :: Id
98 intDataCon :: Id
99 intTy :: UniType
100 intTyCon :: TyCon
101 integerDataCon :: Id
102 integerTy :: UniType
103 integerTyCon :: TyCon
104 liftDataCon :: Id
105 liftTyCon :: TyCon
106 listTyCon :: TyCon
107 ltPrimDataCon :: Id
108 mkFunTy :: UniType -> UniType -> UniType
109 pAT_ERROR_ID :: Id
110 packStringForCId :: Id
111 realWorldPrimId :: Id
112 unpackCString2Id :: Id
113 unpackCStringAppendId :: Id
114 unpackCStringId :: Id
115 voidPrimId :: Id
116 pprPrimOp :: PprStyle -> PrimOp -> Int -> Bool -> PrettyRep
117 primOpCanTriggerGC :: PrimOp -> Bool
118 primOpHeapReq :: PrimOp -> HeapRequirement
119 primOpIsCheap :: PrimOp -> Bool
120 primOpNameInfo :: PrimOp -> (_PackedString, Name)
121 primOpNeedsWrapper :: PrimOp -> Bool
122 primOpOkForSpeculation :: PrimOp -> Bool
123 showPrimOp :: PprStyle -> PrimOp -> [Char]
124 typeOfPrimOp :: PrimOp -> UniType
125 realWorldStatePrimTy :: UniType
126 realWorldTy :: UniType
127 realWorldTyCon :: TyCon
128 voidPrimTy :: UniType
129 wordPrimTy :: UniType
130 wordPrimTyCon :: TyCon
131 mkLiftTy :: UniType -> UniType
132 mkListTy :: UniType -> UniType
133 mkPrimIoTy :: UniType -> UniType
134 mkTupleTy :: Int -> [UniType] -> UniType
135 nilDataCon :: Id
136 ratioDataCon :: Id
137 rationalTy :: UniType
138 rationalTyCon :: TyCon
139 readUnfoldingPrimOp :: _PackedString -> PrimOp
140 realWorldStateTy :: UniType
141 stateDataCon :: Id
142 stringTy :: UniType
143 trueDataCon :: Id
144 unitTy :: UniType
145 wordDataCon :: Id
146 wordTy :: UniType
147 wordTyCon :: TyCon
148 instance Eq GlobalSwitch
149 instance Eq Id
150 instance Eq PrimKind
151 instance Eq PrimOp
152 instance Eq TyCon
153 instance Eq Unique
154 instance Ord GlobalSwitch
155 instance Ord Id
156 instance Ord PrimKind
157 instance Ord TyCon
158 instance Ord Unique
159 instance NamedThing Id
160 instance NamedThing TyCon
161 instance Outputable Id
162 instance Outputable PrimKind
163 instance Outputable PrimOp
164 instance Outputable TyCon
165 instance Text Unique
166