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