[project @ 1996-02-06 14:32:22 by dnt]
[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, appendId, augmentId, buildId, eRROR_ID, foldlId, foldrId, integerMinusOneId, integerPlusOneId, integerPlusTwoId, integerZeroId, mkBuild, mkFoldl, mkFoldr, pAT_ERROR_ID, packStringForCId, realWorldPrimId, unpackCString2Id, unpackCStringAppendId, unpackCStringFoldrId, 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 appendId :: Id
55 augmentId :: Id
56 buildId :: Id
57 eRROR_ID :: Id
58 foldlId :: Id
59 foldrId :: Id
60 integerMinusOneId :: Id
61 integerPlusOneId :: Id
62 integerPlusTwoId :: Id
63 integerZeroId :: Id
64 mkBuild :: UniType -> TyVar -> Id -> Id -> Id -> CoreExpr Id Id -> CoreExpr Id Id
65 mkFoldl :: UniType -> UniType -> Id -> Id -> Id -> CoreExpr a Id
66 mkFoldr :: UniType -> UniType -> Id -> Id -> Id -> CoreExpr a Id
67 fragilePrimOp :: PrimOp -> Bool
68 getPrimOpResultInfo :: PrimOp -> PrimOpResultInfo
69 isCompareOp :: PrimOp -> Bool
70 addrPrimTy :: UniType
71 addrPrimTyCon :: TyCon
72 charPrimTy :: UniType
73 charPrimTyCon :: TyCon
74 doublePrimTy :: UniType
75 doublePrimTyCon :: TyCon
76 floatPrimTy :: UniType
77 floatPrimTyCon :: TyCon
78 intPrimTy :: UniType
79 intPrimTyCon :: TyCon
80 addrDataCon :: Id
81 addrTy :: UniType
82 addrTyCon :: TyCon
83 boolTy :: UniType
84 boolTyCon :: TyCon
85 builtinNameInfo :: (GlobalSwitch -> Bool) -> (_PackedString -> Labda Name, _PackedString -> Labda Name)
86 charDataCon :: Id
87 charTy :: UniType
88 charTyCon :: TyCon
89 cmpTagTy :: UniType
90 consDataCon :: Id
91 doubleDataCon :: Id
92 doubleTy :: UniType
93 doubleTyCon :: TyCon
94 eqPrimDataCon :: Id
95 falseDataCon :: Id
96 floatDataCon :: Id
97 floatTy :: UniType
98 floatTyCon :: TyCon
99 getStatePairingConInfo :: UniType -> (Id, UniType)
100 gtPrimDataCon :: Id
101 intDataCon :: Id
102 intTy :: UniType
103 intTyCon :: TyCon
104 integerDataCon :: Id
105 integerTy :: UniType
106 integerTyCon :: TyCon
107 liftDataCon :: Id
108 liftTyCon :: TyCon
109 listTyCon :: TyCon
110 ltPrimDataCon :: Id
111 mkFunTy :: UniType -> UniType -> UniType
112 pAT_ERROR_ID :: Id
113 packStringForCId :: Id
114 realWorldPrimId :: Id
115 unpackCString2Id :: Id
116 unpackCStringAppendId :: Id
117 unpackCStringFoldrId :: Id
118 unpackCStringId :: Id
119 voidPrimId :: Id
120 pprPrimOp :: PprStyle -> PrimOp -> Int -> Bool -> PrettyRep
121 primOpCanTriggerGC :: PrimOp -> Bool
122 primOpHeapReq :: PrimOp -> HeapRequirement
123 primOpIsCheap :: PrimOp -> Bool
124 primOpNameInfo :: PrimOp -> (_PackedString, Name)
125 primOpNeedsWrapper :: PrimOp -> Bool
126 primOpOkForSpeculation :: PrimOp -> Bool
127 showPrimOp :: PprStyle -> PrimOp -> [Char]
128 typeOfPrimOp :: PrimOp -> UniType
129 realWorldStatePrimTy :: UniType
130 realWorldTy :: UniType
131 realWorldTyCon :: TyCon
132 voidPrimTy :: UniType
133 wordPrimTy :: UniType
134 wordPrimTyCon :: TyCon
135 mkLiftTy :: UniType -> UniType
136 mkListTy :: UniType -> UniType
137 mkPrimIoTy :: UniType -> UniType
138 mkTupleTy :: Int -> [UniType] -> UniType
139 nilDataCon :: Id
140 ratioDataCon :: Id
141 rationalTy :: UniType
142 rationalTyCon :: TyCon
143 readUnfoldingPrimOp :: _PackedString -> PrimOp
144 realWorldStateTy :: UniType
145 stateDataCon :: Id
146 stringTy :: UniType
147 trueDataCon :: Id
148 unitTy :: UniType
149 wordDataCon :: Id
150 wordTy :: UniType
151 wordTyCon :: TyCon
152 instance Eq GlobalSwitch
153 instance Eq Id
154 instance Eq PrimKind
155 instance Eq PrimOp
156 instance Eq TyCon
157 instance Eq Unique
158 instance Ord GlobalSwitch
159 instance Ord Id
160 instance Ord PrimKind
161 instance Ord TyCon
162 instance Ord Unique
163 instance NamedThing Id
164 instance NamedThing TyCon
165 instance Outputable Id
166 instance Outputable PrimKind
167 instance Outputable PrimOp
168 instance Outputable TyCon
169 instance Text Unique
170