-\begin{code}
-mkPreludeClassUnique i = mkUnique '1' i
-mkPreludeTyConUnique i = mkUnique '2' i
-mkPreludeDataConUnique i = mkUnique 'Y' i -- must be alphabetic
-mkTupleDataConUnique i = mkUnique 'Z' i -- ditto (*may* be used in C labels)
--- mkPrimOpIdUnique op: see below (uses '5')
-mkPreludeMiscIdUnique i = mkUnique '7' i
-\end{code}
-
-%************************************************************************
-%* *
-\subsubsection[Uniques-prelude-Classes]{@Uniques@ for wired-in @Classes@}
-%* *
-%************************************************************************
-
-\begin{code}
-eqClassKey = mkPreludeClassUnique 1
-ordClassKey = mkPreludeClassUnique 2
-numClassKey = mkPreludeClassUnique 3
-integralClassKey = mkPreludeClassUnique 4
-fractionalClassKey = mkPreludeClassUnique 5
-floatingClassKey = mkPreludeClassUnique 6
-realClassKey = mkPreludeClassUnique 7
-realFracClassKey = mkPreludeClassUnique 8
-realFloatClassKey = mkPreludeClassUnique 9
-ixClassKey = mkPreludeClassUnique 10
-enumClassKey = mkPreludeClassUnique 11
-textClassKey = mkPreludeClassUnique 12
-binaryClassKey = mkPreludeClassUnique 13
-cCallableClassKey = mkPreludeClassUnique 14
-cReturnableClassKey = mkPreludeClassUnique 15
-#ifdef DPH
-pidClassKey = mkPreludeClassUnique 16
-processorClassKey = mkPreludeClassUnique 17
-#endif {- Data Parallel Haskell -}
-\end{code}
-
-%************************************************************************
-%* *
-\subsubsection[Uniques-prelude-TyCons]{@Uniques@ for wired-in @TyCons@}
-%* *
-%************************************************************************
-
-\begin{code}
-addrPrimTyConKey = mkPreludeTyConUnique 1
-addrTyConKey = mkPreludeTyConUnique 2
-arrayPrimTyConKey = mkPreludeTyConUnique 3
-boolTyConKey = mkPreludeTyConUnique 4
-byteArrayPrimTyConKey = mkPreludeTyConUnique 5
---UNUSED:byteArrayTyConKey = mkPreludeTyConUnique 6
-charPrimTyConKey = mkPreludeTyConUnique 7
-charTyConKey = mkPreludeTyConUnique 8
-cmpTagTyConKey = mkPreludeTyConUnique 9
-dialogueTyConKey = mkPreludeTyConUnique 10
-doublePrimTyConKey = mkPreludeTyConUnique 11
-doubleTyConKey = mkPreludeTyConUnique 12
-floatPrimTyConKey = mkPreludeTyConUnique 13
-floatTyConKey = mkPreludeTyConUnique 14
---UNUSED:iOErrorTyConKey = mkPreludeTyConUnique 14
---UNUSED:iOIntPrimTyConKey = mkPreludeTyConUnique 15
-iOTyConKey = mkPreludeTyConUnique 16
-intPrimTyConKey = mkPreludeTyConUnique 17
-intTyConKey = mkPreludeTyConUnique 18
-integerTyConKey = mkPreludeTyConUnique 19
-liftTyConKey = mkPreludeTyConUnique 20
-listTyConKey = mkPreludeTyConUnique 21
-mallocPtrPrimTyConKey = mkPreludeTyConUnique 22
-mallocPtrTyConKey = mkPreludeTyConUnique 23
-mutableArrayPrimTyConKey = mkPreludeTyConUnique 24
---UNUSED:mutableArrayTyConKey = mkPreludeTyConUnique 25
-mutableByteArrayPrimTyConKey = mkPreludeTyConUnique 26
---UNUSED:mutableByteArrayTyConKey = mkPreludeTyConUnique 27
---UNUSED:packedStringTyConKey = mkPreludeTyConUnique 28
-synchVarPrimTyConKey = mkPreludeTyConUnique 29
-ratioTyConKey = mkPreludeTyConUnique 30
-rationalTyConKey = mkPreludeTyConUnique 31
-realWorldTyConKey = mkPreludeTyConUnique 32
---UNUSED:requestTyConKey = mkPreludeTyConUnique 33
---UNUSED:responseTyConKey = mkPreludeTyConUnique 34
-return2GMPsTyConKey = mkPreludeTyConUnique 35
-returnIntAndGMPTyConKey = mkPreludeTyConUnique 36
---UNUSED:seqIntPrimTyConKey = mkPreludeTyConUnique 37
---UNUSED:seqTyConKey = mkPreludeTyConUnique 38
-stablePtrPrimTyConKey = mkPreludeTyConUnique 39
-stablePtrTyConKey = mkPreludeTyConUnique 40
-stateAndAddrPrimTyConKey = mkPreludeTyConUnique 41
-stateAndArrayPrimTyConKey = mkPreludeTyConUnique 42
-stateAndByteArrayPrimTyConKey = mkPreludeTyConUnique 43
-stateAndCharPrimTyConKey = mkPreludeTyConUnique 44
-stateAndDoublePrimTyConKey = mkPreludeTyConUnique 45
-stateAndFloatPrimTyConKey = mkPreludeTyConUnique 46
-stateAndIntPrimTyConKey = mkPreludeTyConUnique 47
-stateAndMallocPtrPrimTyConKey = mkPreludeTyConUnique 48
-stateAndMutableArrayPrimTyConKey = mkPreludeTyConUnique 49
-stateAndMutableByteArrayPrimTyConKey = mkPreludeTyConUnique 50
-stateAndSynchVarPrimTyConKey = mkPreludeTyConUnique 51
-stateAndPtrPrimTyConKey = mkPreludeTyConUnique 52
-stateAndStablePtrPrimTyConKey = mkPreludeTyConUnique 53
-stateAndWordPrimTyConKey = mkPreludeTyConUnique 54
-statePrimTyConKey = mkPreludeTyConUnique 55
-stateTyConKey = mkPreludeTyConUnique 56
-stringTyConKey = mkPreludeTyConUnique 57
-stTyConKey = mkPreludeTyConUnique 58
-primIoTyConKey = mkPreludeTyConUnique 59
---UNUSED:ioResultTyConKey = mkPreludeTyConUnique 60
-voidPrimTyConKey = mkPreludeTyConUnique 61
-wordPrimTyConKey = mkPreludeTyConUnique 62
-wordTyConKey = mkPreludeTyConUnique 63
-
-#ifdef DPH
-podTyConKey = mkPreludeTyConUnique 64
-interfacePodTyConKey = mkPreludeTyConUnique 65
-
-podizedPodTyConKey _ = panic "ToDo:DPH:podizedPodTyConKey"
-#endif {- Data Parallel Haskell -}
-\end{code}
-
-%************************************************************************
-%* *
-\subsubsection[Uniques-prelude-DataCons]{@Uniques@ for wired-in @DataCons@}
-%* *
-%************************************************************************
-
-\begin{code}
-addrDataConKey = mkPreludeDataConUnique 1
-buildDataConKey = mkPreludeDataConUnique 2
---UNUSED:byteArrayDataConKey = mkPreludeDataConUnique 3
-charDataConKey = mkPreludeDataConUnique 4
-consDataConKey = mkPreludeDataConUnique 5
-doubleDataConKey = mkPreludeDataConUnique 6
-eqTagDataConKey = mkPreludeDataConUnique 7
-falseDataConKey = mkPreludeDataConUnique 8
-floatDataConKey = mkPreludeDataConUnique 9
-gtTagDataConKey = mkPreludeDataConUnique 10
-intDataConKey = mkPreludeDataConUnique 11
-integerDataConKey = mkPreludeDataConUnique 12
-liftDataConKey = mkPreludeDataConUnique 13
-ltTagDataConKey = mkPreludeDataConUnique 14
-mallocPtrDataConKey = mkPreludeDataConUnique 15
---UNUSED:mutableArrayDataConKey = mkPreludeDataConUnique 16
---UNUSED:mutableByteArrayDataConKey = mkPreludeDataConUnique 17
-nilDataConKey = mkPreludeDataConUnique 18
---UNUSED:psDataConKey = mkPreludeDataConUnique 19
---UNUSED:cpsDataConKey = mkPreludeDataConUnique 20
-ratioDataConKey = mkPreludeDataConUnique 21
-return2GMPsDataConKey = mkPreludeDataConUnique 22
-returnIntAndGMPDataConKey = mkPreludeDataConUnique 23
-stablePtrDataConKey = mkPreludeDataConUnique 24
-stateAndAddrPrimDataConKey = mkPreludeDataConUnique 25
-stateAndArrayPrimDataConKey = mkPreludeDataConUnique 26
-stateAndByteArrayPrimDataConKey = mkPreludeDataConUnique 27
-stateAndCharPrimDataConKey = mkPreludeDataConUnique 28
-stateAndDoublePrimDataConKey = mkPreludeDataConUnique 29
-stateAndFloatPrimDataConKey = mkPreludeDataConUnique 30
-stateAndIntPrimDataConKey = mkPreludeDataConUnique 31
-stateAndMallocPtrPrimDataConKey = mkPreludeDataConUnique 32
-stateAndMutableArrayPrimDataConKey = mkPreludeDataConUnique 33
-stateAndMutableByteArrayPrimDataConKey = mkPreludeDataConUnique 34
-stateAndSynchVarPrimDataConKey = mkPreludeDataConUnique 35
-stateAndPtrPrimDataConKey = mkPreludeDataConUnique 36
-stateAndStablePtrPrimDataConKey = mkPreludeDataConUnique 37
-stateAndWordPrimDataConKey = mkPreludeDataConUnique 38
-stateDataConKey = mkPreludeDataConUnique 39
-trueDataConKey = mkPreludeDataConUnique 40
-wordDataConKey = mkPreludeDataConUnique 41
-
-#ifdef DPH
-interfacePodDataConKey = mkPreludeDataConUnique 42
-#endif {- Data Parallel Haskell -}
-\end{code}
-
-%************************************************************************
-%* *
-\subsubsection[Uniques-prelude-Ids]{@Uniques@ for wired-in @Ids@ (except @DataCons@)}
-%* *
-%************************************************************************
-
-First, for raw @PrimOps@ and their boxed versions:
-\begin{code}
-mkPrimOpIdUnique :: PrimOp -> Unique
-
-mkPrimOpIdUnique op = mkUnique '5' IBOX((tagOf_PrimOp op))
-\end{code}
-
-Now for other non-@DataCon@ @Ids@:
-\begin{code}
-absentErrorIdKey = mkPreludeMiscIdUnique 1
-buildIdKey = mkPreludeMiscIdUnique 2
-errorIdKey = mkPreludeMiscIdUnique 3
-foldlIdKey = mkPreludeMiscIdUnique 4
-foldrIdKey = mkPreludeMiscIdUnique 5
-forkIdKey = mkPreludeMiscIdUnique 6
-int2IntegerIdKey = mkPreludeMiscIdUnique 7
-integerMinusOneIdKey = mkPreludeMiscIdUnique 8
-integerPlusOneIdKey = mkPreludeMiscIdUnique 9
-integerZeroIdKey = mkPreludeMiscIdUnique 10
---UNUSED:lexIdKey = mkPreludeMiscIdUnique 11
-packCStringIdKey = mkPreludeMiscIdUnique 12
-parIdKey = mkPreludeMiscIdUnique 13
-parErrorIdKey = mkPreludeMiscIdUnique 14
-patErrorIdKey = mkPreludeMiscIdUnique 15
---UNUSED:readParenIdKey = mkPreludeMiscIdUnique 16
-realWorldPrimIdKey = mkPreludeMiscIdUnique 17
-runSTIdKey = mkPreludeMiscIdUnique 18
-seqIdKey = mkPreludeMiscIdUnique 19
---UNUSED:showParenIdKey = mkPreludeMiscIdUnique 20
---UNUSED:showSpaceIdKey = mkPreludeMiscIdUnique 21
-traceIdKey = mkPreludeMiscIdUnique 22
-unpackCStringIdKey = mkPreludeMiscIdUnique 23
-unpackCString2IdKey = mkPreludeMiscIdUnique 20 -- NB: NB: NB
-unpackCStringAppendIdKey= mkPreludeMiscIdUnique 21 -- NB: NB: NB
-voidPrimIdKey = mkPreludeMiscIdUnique 24
-
-#ifdef GRAN
-parLocalIdKey = mkPreludeMiscIdUnique 25
-parGlobalIdKey = mkPreludeMiscIdUnique 26
-noFollowIdKey = mkPreludeMiscIdUnique 27
-copyableIdKey = mkPreludeMiscIdUnique 28
-#endif
-
-#ifdef DPH
-podSelectorIdKey = mkPreludeMiscIdUnique 29
-#endif {- Data Parallel Haskell -}
-\end{code}
-
-%************************************************************************
-%* *
-\subsection[UniqueSupply-type]{@UniqueSupply@ type and operations}
-%* *
-%************************************************************************
-
-\begin{code}
-#ifdef __GLASGOW_HASKELL__
-data UniqueSupply
- = MkUniqueSupply Int#
- | MkNewSupply SplitUniqSupply
-
-#else
-data UniqueSupply
- = MkUniqueSupply Word{-#STRICT#-}
- | MkNewSupply SplitUniqSupply
-#endif
-\end{code}
-
-@mkUniqueSupply@ is used to get a @UniqueSupply@ started.
-\begin{code}
-mkUniqueSupply :: Char -> UniqueSupply
-
-#ifdef __GLASGOW_HASKELL__
-
-mkUniqueSupply (MkChar c#)
- = MkUniqueSupply (w2i ((i2w (ord# c#)) `shiftL#` (i2w_s 24#)))
-
-#else
-
-mkUniqueSupply c
- = MkUniqueSupply ((fromInt (ord c)) `bitLsh` 24)