[project @ 1998-04-07 07:51:07 by simonpj]
[ghc-hetmet.git] / ghc / compiler / basicTypes / Unique.lhs
index 4021d24..2a79917 100644 (file)
@@ -1,7 +1,4 @@
-%
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1996
-%
-\section[Unique]{The @Unique@ data type}
+
 
 @Uniques@ are used to distinguish entities in the compiler (@Ids@,
 @Classes@, etc.) from each other.  Thus, @Uniques@ are the basic
@@ -46,6 +43,7 @@ module Unique (
        andandIdKey,
        appendIdKey,
        arrayPrimTyConKey,
+       assertIdKey,
        augmentIdKey,
        boolTyConKey,
        boundedClassKey,
@@ -57,6 +55,7 @@ module Unique (
        charDataConKey,
        charPrimTyConKey,
        charTyConKey,
+       coerceIdKey,
        composeIdKey,
        consDataConKey,
        doubleDataConKey,
@@ -92,6 +91,7 @@ module Unique (
        functorClassKey,
        geClassOpKey,
        gtDataConKey,
+       inlineIdKey,
        intDataConKey,
        intPrimTyConKey,
        intTyConKey,
@@ -117,9 +117,8 @@ module Unique (
        mutableArrayPrimTyConKey,
        mutableByteArrayPrimTyConKey,
        nilDataConKey,
-       noDefaultMethodErrorIdKey,
+       noMethodBindingErrorIdKey,
        nonExhaustiveGuardsErrorIdKey,
-       nonExplicitMethodErrorIdKey,
        notIdKey,
        numClassKey,
        ordClassKey,
@@ -140,6 +139,7 @@ module Unique (
        realWorldPrimIdKey,
        realWorldTyConKey,
        recConErrorIdKey,
+       recSelErrIdKey,
        recUpdErrorIdKey,
        return2GMPsDataConKey,
        return2GMPsTyConKey,
@@ -385,25 +385,11 @@ A character-stingy way to read/write numbers (notably Uniques).
 The ``62-its'' are \tr{[0-9a-zA-Z]}.  We don't handle negative Ints.
 Code stolen from Lennart.
 \begin{code}
-#if __GLASGOW_HASKELL__ == 201
-# define BYTE_ARRAY GHCbase.ByteArray
-# define RUN_ST            GHCbase.runST
-# define AND_THEN   >>=
-# define AND_THEN_  >>
-# define RETURN            return
-#elif __GLASGOW_HASKELL__ >= 202
 # define BYTE_ARRAY GlaExts.ByteArray
 # define RUN_ST            ST.runST
 # define AND_THEN   >>=
 # define AND_THEN_  >>
 # define RETURN            return
-#else
-# define BYTE_ARRAY _ByteArray
-# define RUN_ST            _runST
-# define AND_THEN   `thenStrictlyST`
-# define AND_THEN_  `seqStrictlyST`
-# define RETURN            returnStrictlyST
-#endif
 
 iToBase62 :: Int -> SDoc
 
@@ -653,70 +639,75 @@ errorIdKey                      = mkPreludeMiscIdUnique  7
 foldlIdKey                   = mkPreludeMiscIdUnique  8
 foldrIdKey                   = mkPreludeMiscIdUnique  9
 forkIdKey                    = mkPreludeMiscIdUnique 10
-int2IntegerIdKey             = mkPreludeMiscIdUnique 11
+recSelErrIdKey               = mkPreludeMiscIdUnique 11
 integerMinusOneIdKey         = mkPreludeMiscIdUnique 12
 integerPlusOneIdKey          = mkPreludeMiscIdUnique 13
 integerPlusTwoIdKey          = mkPreludeMiscIdUnique 14
 integerZeroIdKey             = mkPreludeMiscIdUnique 15
 irrefutPatErrorIdKey         = mkPreludeMiscIdUnique 16
 lexIdKey                     = mkPreludeMiscIdUnique 17
-noDefaultMethodErrorIdKey     = mkPreludeMiscIdUnique 20
+noMethodBindingErrorIdKey     = mkPreludeMiscIdUnique 20
 nonExhaustiveGuardsErrorIdKey = mkPreludeMiscIdUnique 21
-nonExplicitMethodErrorIdKey   = mkPreludeMiscIdUnique 22
-notIdKey                     = mkPreludeMiscIdUnique 23
-packCStringIdKey             = mkPreludeMiscIdUnique 24
-parErrorIdKey                = mkPreludeMiscIdUnique 25
-parIdKey                     = mkPreludeMiscIdUnique 26
-patErrorIdKey                = mkPreludeMiscIdUnique 27
-readParenIdKey               = mkPreludeMiscIdUnique 28
-realWorldPrimIdKey           = mkPreludeMiscIdUnique 29
-recConErrorIdKey             = mkPreludeMiscIdUnique 30
-recUpdErrorIdKey             = mkPreludeMiscIdUnique 31
-seqIdKey                     = mkPreludeMiscIdUnique 33
-showParenIdKey               = mkPreludeMiscIdUnique 34
-showSpaceIdKey               = mkPreludeMiscIdUnique 35
-showStringIdKey                      = mkPreludeMiscIdUnique 36
-traceIdKey                   = mkPreludeMiscIdUnique 37
-unpackCString2IdKey          = mkPreludeMiscIdUnique 38
-unpackCStringAppendIdKey      = mkPreludeMiscIdUnique 39
-unpackCStringFoldrIdKey              = mkPreludeMiscIdUnique 40
-unpackCStringIdKey           = mkPreludeMiscIdUnique 41
-voidIdKey                    = mkPreludeMiscIdUnique 42
-ushowListIdKey               = mkPreludeMiscIdUnique 43
-ureadListIdKey               = mkPreludeMiscIdUnique 44
-
-copyableIdKey          = mkPreludeMiscIdUnique 45
-noFollowIdKey          = mkPreludeMiscIdUnique 46
-parAtAbsIdKey          = mkPreludeMiscIdUnique 47
-parAtForNowIdKey       = mkPreludeMiscIdUnique 48
-parAtIdKey             = mkPreludeMiscIdUnique 49
-parAtRelIdKey          = mkPreludeMiscIdUnique 50
-parGlobalIdKey         = mkPreludeMiscIdUnique 51
-parLocalIdKey          = mkPreludeMiscIdUnique 52
+notIdKey                     = mkPreludeMiscIdUnique 22
+packCStringIdKey             = mkPreludeMiscIdUnique 23
+parErrorIdKey                = mkPreludeMiscIdUnique 24
+parIdKey                     = mkPreludeMiscIdUnique 25
+patErrorIdKey                = mkPreludeMiscIdUnique 26
+readParenIdKey               = mkPreludeMiscIdUnique 27
+realWorldPrimIdKey           = mkPreludeMiscIdUnique 28
+recConErrorIdKey             = mkPreludeMiscIdUnique 29
+recUpdErrorIdKey             = mkPreludeMiscIdUnique 30
+seqIdKey                     = mkPreludeMiscIdUnique 31
+showParenIdKey               = mkPreludeMiscIdUnique 32
+showSpaceIdKey               = mkPreludeMiscIdUnique 33
+showStringIdKey                      = mkPreludeMiscIdUnique 34
+traceIdKey                   = mkPreludeMiscIdUnique 35
+unpackCString2IdKey          = mkPreludeMiscIdUnique 36
+unpackCStringAppendIdKey      = mkPreludeMiscIdUnique 37
+unpackCStringFoldrIdKey              = mkPreludeMiscIdUnique 38
+unpackCStringIdKey           = mkPreludeMiscIdUnique 39
+voidIdKey                    = mkPreludeMiscIdUnique 40
+ushowListIdKey               = mkPreludeMiscIdUnique 41
+ureadListIdKey               = mkPreludeMiscIdUnique 42
+
+copyableIdKey          = mkPreludeMiscIdUnique 43
+noFollowIdKey          = mkPreludeMiscIdUnique 44
+parAtAbsIdKey          = mkPreludeMiscIdUnique 45
+parAtForNowIdKey       = mkPreludeMiscIdUnique 46
+parAtIdKey             = mkPreludeMiscIdUnique 47
+parAtRelIdKey          = mkPreludeMiscIdUnique 48
+parGlobalIdKey         = mkPreludeMiscIdUnique 49
+parLocalIdKey          = mkPreludeMiscIdUnique 50
 \end{code}
 
 Certain class operations from Prelude classes.  They get
 their own uniques so we can look them up easily when we want
 to conjure them up during type checking.        
 \begin{code}                                     
-fromIntClassOpKey      = mkPreludeMiscIdUnique 53
-fromIntegerClassOpKey  = mkPreludeMiscIdUnique 54
-minusClassOpKey                = mkPreludeMiscIdUnique 55
-fromRationalClassOpKey = mkPreludeMiscIdUnique 56
-enumFromClassOpKey     = mkPreludeMiscIdUnique 57
-enumFromThenClassOpKey = mkPreludeMiscIdUnique 58
-enumFromToClassOpKey   = mkPreludeMiscIdUnique 59
-enumFromThenToClassOpKey= mkPreludeMiscIdUnique 60
-eqClassOpKey           = mkPreludeMiscIdUnique 61
-geClassOpKey           = mkPreludeMiscIdUnique 62
-zeroClassOpKey         = mkPreludeMiscIdUnique 63
-thenMClassOpKey                = mkPreludeMiscIdUnique 64 -- (>>=)
-unboundKey             = mkPreludeMiscIdUnique 65      -- Just a place holder for unbound
+fromIntClassOpKey      = mkPreludeMiscIdUnique 51
+fromIntegerClassOpKey  = mkPreludeMiscIdUnique 52
+minusClassOpKey                = mkPreludeMiscIdUnique 53
+fromRationalClassOpKey = mkPreludeMiscIdUnique 54
+enumFromClassOpKey     = mkPreludeMiscIdUnique 55
+enumFromThenClassOpKey = mkPreludeMiscIdUnique 56
+enumFromToClassOpKey   = mkPreludeMiscIdUnique 57
+enumFromThenToClassOpKey= mkPreludeMiscIdUnique 58
+eqClassOpKey           = mkPreludeMiscIdUnique 59
+geClassOpKey           = mkPreludeMiscIdUnique 60
+zeroClassOpKey         = mkPreludeMiscIdUnique 61
+thenMClassOpKey                = mkPreludeMiscIdUnique 62 -- (>>=)
+unboundKey             = mkPreludeMiscIdUnique 63      -- Just a place holder for unbound
                                                        -- variables produced by the renamer
-fromEnumClassOpKey     = mkPreludeMiscIdUnique 66
+fromEnumClassOpKey     = mkPreludeMiscIdUnique 64
 
-mainKey                        = mkPreludeMiscIdUnique 67
-returnMClassOpKey      = mkPreludeMiscIdUnique 68
-otherwiseIdKey         = mkPreludeMiscIdUnique 69
-toEnumClassOpKey       = mkPreludeMiscIdUnique 70
+mainKey                        = mkPreludeMiscIdUnique 65
+returnMClassOpKey      = mkPreludeMiscIdUnique 66
+otherwiseIdKey         = mkPreludeMiscIdUnique 67
+toEnumClassOpKey       = mkPreludeMiscIdUnique 68
+\end{code}
+
+\begin{code}
+inlineIdKey            = mkPreludeMiscIdUnique 69
+coerceIdKey            = mkPreludeMiscIdUnique 70
+assertIdKey            = mkPreludeMiscIdUnique 71
 \end{code}