Reorganisation of the source tree
[ghc-hetmet.git] / ghc / compiler / prelude / PrelNames.lhs
diff --git a/ghc/compiler/prelude/PrelNames.lhs b/ghc/compiler/prelude/PrelNames.lhs
deleted file mode 100644 (file)
index d656fbf..0000000
+++ /dev/null
@@ -1,1063 +0,0 @@
-%
-% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
-%
-\section[PrelNames]{Definitions of prelude modules and names}
-
-
-Nota Bene: all Names defined in here should come from the base package
-
-* ModuleNames for prelude modules, 
-       e.g.    pREL_BASE_Name :: ModuleName
-
-* Modules for prelude modules
-       e.g.    pREL_Base :: Module
-
-* Uniques for Ids, DataCons, TyCons and Classes that the compiler 
-  "knows about" in some way
-       e.g.    intTyConKey :: Unique
-               minusClassOpKey :: Unique
-
-* Names for Ids, DataCons, TyCons and Classes that the compiler 
-  "knows about" in some way
-       e.g.    intTyConName :: Name
-               minusName    :: Name
-  One of these Names contains
-       (a) the module and occurrence name of the thing
-       (b) its Unique
-  The may way the compiler "knows about" one of these things is
-  where the type checker or desugarer needs to look it up. For
-  example, when desugaring list comprehensions the desugarer
-  needs to conjure up 'foldr'.  It does this by looking up
-  foldrName in the environment.
-
-* RdrNames for Ids, DataCons etc that the compiler may emit into
-  generated code (e.g. for deriving).  It's not necessary to know
-  the uniques for these guys, only their names
-
-
-\begin{code}
-module PrelNames (
-       Unique, Uniquable(..), hasKey,  -- Re-exported for convenience
-
-       -----------------------------------------------------------
-       module PrelNames,       -- A huge bunch of (a) Names,  e.g. intTyConName
-                               --                 (b) Uniques e.g. intTyConKey
-                               --                 (c) Groups of classes and types
-                               --                 (d) miscellaneous things
-                               -- So many that we export them all
-    ) where
-
-#include "HsVersions.h"
-
-import Module    ( Module, mkModule )
-import OccName   ( dataName, tcName, clsName, varName, mkOccNameFS,
-                   mkVarOccFS )
-import RdrName   ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual )
-import Unique    ( Unique, Uniquable(..), hasKey,
-                   mkPreludeMiscIdUnique, mkPreludeDataConUnique,
-                   mkPreludeTyConUnique, mkPreludeClassUnique,
-                   mkTupleTyConUnique
-                 ) 
-import BasicTypes ( Boxity(..), Arity )
-import Name      ( Name, mkInternalName, mkExternalName, nameModule )
-import SrcLoc     ( noSrcLoc )
-import FastString
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-\subsection{Local Names}
-%*                                                                     *
-%************************************************************************
-
-This *local* name is used by the interactive stuff
-
-\begin{code}
-itName uniq = mkInternalName uniq (mkOccNameFS varName FSLIT("it")) noSrcLoc
-\end{code}
-
-\begin{code}
--- mkUnboundName makes a place-holder Name; it shouldn't be looked at except possibly
--- during compiler debugging.
-mkUnboundName :: RdrName -> Name
-mkUnboundName rdr_name = mkInternalName unboundKey (rdrNameOcc rdr_name) noSrcLoc
-
-isUnboundName :: Name -> Bool
-isUnboundName name = name `hasKey` unboundKey
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-\subsection{Known key Names}
-%*                                                                     *
-%************************************************************************
-
-This section tells what the compiler knows about the assocation of
-names with uniques.  These ones are the *non* wired-in ones.  The
-wired in ones are defined in TysWiredIn etc.
-
-\begin{code}
-basicKnownKeyNames :: [Name]
-basicKnownKeyNames
- = genericTyConNames
- ++ typeableClassNames
- ++ [  -- Type constructors (synonyms especially)
-       ioTyConName, ioDataConName,
-       runMainIOName,
-       orderingTyConName,
-       rationalTyConName,
-       ratioDataConName,
-       ratioTyConName,
-       byteArrayTyConName,
-       mutableByteArrayTyConName,
-       integerTyConName, smallIntegerDataConName, largeIntegerDataConName,
-
-       --  Classes.  *Must* include:
-       --      classes that are grabbed by key (e.g., eqClassKey)
-       --      classes in "Class.standardClassKeys" (quite a few)
-       eqClassName,                    -- mentioned, derivable
-       ordClassName,                   -- derivable
-       boundedClassName,               -- derivable
-       numClassName,                   -- mentioned, numeric
-       enumClassName,                  -- derivable
-       monadClassName,
-       functorClassName,
-       realClassName,                  -- numeric
-       integralClassName,              -- numeric
-       fractionalClassName,            -- numeric
-       floatingClassName,              -- numeric
-       realFracClassName,              -- numeric
-       realFloatClassName,             -- numeric
-       dataClassName, 
-
-       -- Numeric stuff
-       negateName, minusName, 
-       fromRationalName, fromIntegerName, 
-       geName, eqName, 
-       
-       -- Enum stuff
-       enumFromName, enumFromThenName, 
-       enumFromThenToName, enumFromToName,
-       enumFromToPName, enumFromThenToPName,
-
-       -- Monad stuff
-       thenIOName, bindIOName, returnIOName, failIOName,
-       failMName, bindMName, thenMName, returnMName,
-
-       -- MonadRec stuff
-       mfixName,
-
-       -- Arrow stuff
-       arrAName, composeAName, firstAName,
-       appAName, choiceAName, loopAName,
-
-       -- Ix stuff
-       ixClassName, 
-
-       -- Show stuff
-       showClassName, 
-
-       -- Read stuff
-       readClassName, 
-       
-       -- Stable pointers
-       newStablePtrName,
-
-       -- Strings and lists
-       unpackCStringName, unpackCStringAppendName,
-       unpackCStringFoldrName, unpackCStringUtf8Name,
-
-       -- List operations
-       concatName, filterName,
-       zipName, foldrName, buildName, augmentName, appendName,
-
-        -- Parallel array operations
-       nullPName, lengthPName, replicatePName, mapPName,
-       filterPName, zipPName, crossPName, indexPName,
-       toPName, bpermutePName, bpermuteDftPName, indexOfPName,
-
-       -- FFI primitive types that are not wired-in.
-       stablePtrTyConName, ptrTyConName, funPtrTyConName, addrTyConName,
-       int8TyConName, int16TyConName, int32TyConName, int64TyConName,
-       wordTyConName, word8TyConName, word16TyConName, word32TyConName, word64TyConName,
-
-       -- Others
-       otherwiseIdName, 
-       plusIntegerName, timesIntegerName,
-       eqStringName, assertName, breakpointName, assertErrorName,
-        runSTRepName,
-       printName, fstName, sndName,
-
-       -- MonadFix
-       monadFixClassName, mfixName,
-
-       -- Splittable class
-       splittableClassName, splitName,
-
-       -- Other classes
-       randomClassName, randomGenClassName, monadPlusClassName,
-
-       -- Booleans
-       andName, orName
-       
-       -- The Either type
-       , eitherTyConName, leftDataConName, rightDataConName
-
-       -- dotnet interop
-       , objectTyConName, marshalObjectName, unmarshalObjectName
-       , marshalStringName, unmarshalStringName, checkDotnetResName
-    ]
-
-genericTyConNames :: [Name]
-genericTyConNames = [crossTyConName, plusTyConName, genUnitTyConName]
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-\subsection{Module names}
-%*                                                                     *
-%************************************************************************
-
-
---MetaHaskell Extension Add a new module here
-\begin{code}
-pRELUDE                = mkModule "Prelude"
-gHC_PRIM       = mkModule "GHC.Prim"      -- Primitive types and values
-pREL_BASE      = mkModule "GHC.Base"
-pREL_ENUM      = mkModule "GHC.Enum"
-pREL_SHOW      = mkModule "GHC.Show"
-pREL_READ      = mkModule "GHC.Read"
-pREL_NUM       = mkModule "GHC.Num"
-pREL_LIST      = mkModule "GHC.List"
-pREL_PARR      = mkModule "GHC.PArr"
-pREL_TUP       = mkModule "Data.Tuple"
-pREL_EITHER    = mkModule "Data.Either"
-pREL_PACK      = mkModule "GHC.Pack"
-pREL_CONC      = mkModule "GHC.Conc"
-pREL_IO_BASE   = mkModule "GHC.IOBase"
-pREL_ST                = mkModule "GHC.ST"
-pREL_ARR       = mkModule "GHC.Arr"
-pREL_BYTEARR   = mkModule "PrelByteArr"
-pREL_STABLE    = mkModule "GHC.Stable"
-pREL_ADDR      = mkModule "GHC.Addr"
-pREL_PTR       = mkModule "GHC.Ptr"
-pREL_ERR       = mkModule "GHC.Err"
-pREL_REAL      = mkModule "GHC.Real"
-pREL_FLOAT     = mkModule "GHC.Float"
-pREL_TOP_HANDLER= mkModule "GHC.TopHandler"
-sYSTEM_IO      = mkModule "System.IO"
-dYNAMIC                = mkModule "Data.Dynamic"
-tYPEABLE       = mkModule "Data.Typeable"
-gENERICS       = mkModule "Data.Generics.Basics"
-dOTNET         = mkModule "GHC.Dotnet"
-
-rEAD_PREC      = mkModule "Text.ParserCombinators.ReadPrec"
-lEX            = mkModule "Text.Read.Lex"
-
-mAIN           = mkModule "Main"
-pREL_INT       = mkModule "GHC.Int"
-pREL_WORD      = mkModule "GHC.Word"
-mONAD          = mkModule "Control.Monad"
-mONAD_FIX      = mkModule "Control.Monad.Fix"
-aRROW          = mkModule "Control.Arrow"
-aDDR           = mkModule "Addr"
-rANDOM         = mkModule "System.Random"
-
-gLA_EXTS       = mkModule "GHC.Exts"
-rOOT_MAIN      = mkModule ":Main"              -- Root module for initialisation 
-       -- The ':xxx' makes a module name that the user can never
-       -- use himself.  The z-encoding for ':' is "ZC", so the z-encoded
-       -- module name still starts with a capital letter, which keeps
-       -- the z-encoded version consistent.
-
-iNTERACTIVE    = mkModule ":Interactive"
-thFAKE         = mkModule ":THFake"
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{Constructing the names of tuples
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-mkTupleModule :: Boxity -> Arity -> Module
-mkTupleModule Boxed   0 = pREL_BASE
-mkTupleModule Boxed   _ = pREL_TUP
-mkTupleModule Unboxed _ = gHC_PRIM
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-                       RdrNames
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-main_RDR_Unqual        = mkUnqual varName FSLIT("main")
-       -- We definitely don't want an Orig RdrName, because
-       -- main might, in principle, be imported into module Main
-
-eq_RDR                         = nameRdrName eqName
-ge_RDR                         = nameRdrName geName
-ne_RDR                         = varQual_RDR  pREL_BASE FSLIT("/=")
-le_RDR                         = varQual_RDR  pREL_BASE FSLIT("<=") 
-gt_RDR                         = varQual_RDR  pREL_BASE FSLIT(">")  
-compare_RDR            = varQual_RDR  pREL_BASE FSLIT("compare") 
-ltTag_RDR              = dataQual_RDR pREL_BASE FSLIT("LT") 
-eqTag_RDR              = dataQual_RDR pREL_BASE FSLIT("EQ")
-gtTag_RDR              = dataQual_RDR pREL_BASE FSLIT("GT")
-
-eqClass_RDR            = nameRdrName eqClassName
-numClass_RDR           = nameRdrName numClassName
-ordClass_RDR           = nameRdrName ordClassName
-enumClass_RDR          = nameRdrName enumClassName
-monadClass_RDR         = nameRdrName monadClassName
-
-map_RDR                = varQual_RDR pREL_BASE FSLIT("map")
-append_RDR             = varQual_RDR pREL_BASE FSLIT("++")
-
-foldr_RDR              = nameRdrName foldrName
-build_RDR              = nameRdrName buildName
-returnM_RDR            = nameRdrName returnMName
-bindM_RDR              = nameRdrName bindMName
-failM_RDR              = nameRdrName failMName
-
-and_RDR                        = nameRdrName andName
-
-left_RDR               = nameRdrName leftDataConName
-right_RDR              = nameRdrName rightDataConName
-
-fromEnum_RDR           = varQual_RDR pREL_ENUM FSLIT("fromEnum")
-toEnum_RDR             = varQual_RDR pREL_ENUM FSLIT("toEnum")
-
-enumFrom_RDR           = nameRdrName enumFromName
-enumFromTo_RDR                 = nameRdrName enumFromToName
-enumFromThen_RDR       = nameRdrName enumFromThenName
-enumFromThenTo_RDR     = nameRdrName enumFromThenToName
-
-ratioDataCon_RDR       = nameRdrName ratioDataConName
-plusInteger_RDR                = nameRdrName plusIntegerName
-timesInteger_RDR       = nameRdrName timesIntegerName
-
-ioDataCon_RDR          = nameRdrName ioDataConName
-
-eqString_RDR           = nameRdrName eqStringName
-unpackCString_RDR              = nameRdrName unpackCStringName
-unpackCStringFoldr_RDR         = nameRdrName unpackCStringFoldrName
-unpackCStringUtf8_RDR          = nameRdrName unpackCStringUtf8Name
-
-newStablePtr_RDR       = nameRdrName newStablePtrName
-addrDataCon_RDR                = dataQual_RDR aDDR FSLIT("A#")
-wordDataCon_RDR                = dataQual_RDR pREL_WORD FSLIT("W#")
-
-bindIO_RDR             = nameRdrName bindIOName
-returnIO_RDR           = nameRdrName returnIOName
-
-fromInteger_RDR                = nameRdrName fromIntegerName
-fromRational_RDR       = nameRdrName fromRationalName
-minus_RDR              = nameRdrName minusName
-times_RDR              = varQual_RDR  pREL_NUM FSLIT("*")
-plus_RDR                = varQual_RDR pREL_NUM FSLIT("+")
-
-compose_RDR            = varQual_RDR pREL_BASE FSLIT(".")
-
-not_RDR                = varQual_RDR pREL_BASE FSLIT("not")
-getTag_RDR             = varQual_RDR pREL_BASE FSLIT("getTag")
-succ_RDR               = varQual_RDR pREL_ENUM FSLIT("succ")
-pred_RDR                = varQual_RDR pREL_ENUM FSLIT("pred")
-minBound_RDR            = varQual_RDR pREL_ENUM FSLIT("minBound")
-maxBound_RDR            = varQual_RDR pREL_ENUM FSLIT("maxBound")
-range_RDR               = varQual_RDR pREL_ARR FSLIT("range")
-inRange_RDR             = varQual_RDR pREL_ARR FSLIT("inRange")
-index_RDR              = varQual_RDR pREL_ARR FSLIT("index")
-unsafeIndex_RDR                = varQual_RDR pREL_ARR FSLIT("unsafeIndex")
-unsafeRangeSize_RDR    = varQual_RDR pREL_ARR FSLIT("unsafeRangeSize")
-
-readList_RDR            = varQual_RDR pREL_READ FSLIT("readList")
-readListDefault_RDR     = varQual_RDR pREL_READ FSLIT("readListDefault")
-readListPrec_RDR        = varQual_RDR pREL_READ FSLIT("readListPrec")
-readListPrecDefault_RDR = varQual_RDR pREL_READ FSLIT("readListPrecDefault")
-readPrec_RDR            = varQual_RDR pREL_READ FSLIT("readPrec")
-parens_RDR              = varQual_RDR pREL_READ FSLIT("parens")
-choose_RDR              = varQual_RDR pREL_READ FSLIT("choose")
-lexP_RDR                = varQual_RDR pREL_READ FSLIT("lexP")
-
-punc_RDR                = dataQual_RDR lEX FSLIT("Punc")
-ident_RDR               = dataQual_RDR lEX FSLIT("Ident")
-symbol_RDR              = dataQual_RDR lEX FSLIT("Symbol")
-
-step_RDR                = varQual_RDR  rEAD_PREC FSLIT("step")
-alt_RDR                 = varQual_RDR  rEAD_PREC FSLIT("+++") 
-reset_RDR               = varQual_RDR  rEAD_PREC FSLIT("reset")
-prec_RDR                = varQual_RDR  rEAD_PREC FSLIT("prec")
-
-showList_RDR            = varQual_RDR pREL_SHOW FSLIT("showList")
-showList___RDR          = varQual_RDR pREL_SHOW FSLIT("showList__")
-showsPrec_RDR           = varQual_RDR pREL_SHOW FSLIT("showsPrec") 
-showString_RDR          = varQual_RDR pREL_SHOW FSLIT("showString")
-showSpace_RDR           = varQual_RDR pREL_SHOW FSLIT("showSpace") 
-showParen_RDR           = varQual_RDR pREL_SHOW FSLIT("showParen") 
-
-typeOf_RDR     = varQual_RDR tYPEABLE FSLIT("typeOf")
-mkTypeRep_RDR  = varQual_RDR tYPEABLE FSLIT("mkTyConApp")
-mkTyConRep_RDR = varQual_RDR tYPEABLE FSLIT("mkTyCon")
-
-undefined_RDR = varQual_RDR pREL_ERR FSLIT("undefined")
-
-crossDataCon_RDR   = dataQual_RDR pREL_BASE FSLIT(":*:")
-inlDataCon_RDR     = dataQual_RDR pREL_BASE FSLIT("Inl")
-inrDataCon_RDR     = dataQual_RDR pREL_BASE FSLIT("Inr")
-genUnitDataCon_RDR = dataQual_RDR pREL_BASE FSLIT("Unit")
-
-----------------------
-varQual_RDR  mod str = mkOrig mod (mkOccNameFS varName str)
-tcQual_RDR   mod str = mkOrig mod (mkOccNameFS tcName str)
-clsQual_RDR  mod str = mkOrig mod (mkOccNameFS clsName str)
-dataQual_RDR mod str = mkOrig mod (mkOccNameFS dataName str)
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{Known-key names}
-%*                                                                     *
-%************************************************************************
-
-Many of these Names are not really "built in", but some parts of the
-compiler (notably the deriving mechanism) need to mention their names,
-and it's convenient to write them all down in one place.
-
---MetaHaskell Extension  add the constrs and the lower case case
--- guys as well (perhaps) e.g. see  trueDataConName    below
-
-
-\begin{code}
-runMainIOName = varQual pREL_TOP_HANDLER FSLIT("runMainIO") runMainKey
-
-orderingTyConName = tcQual   pREL_BASE FSLIT("Ordering") orderingTyConKey
-
-eitherTyConName          = tcQual  pREL_EITHER     FSLIT("Either") eitherTyConKey
-leftDataConName   = conName eitherTyConName FSLIT("Left")   leftDataConKey
-rightDataConName  = conName eitherTyConName FSLIT("Right")  rightDataConKey
-
--- Generics
-crossTyConName     = tcQual   pREL_BASE FSLIT(":*:") crossTyConKey
-plusTyConName      = tcQual   pREL_BASE FSLIT(":+:") plusTyConKey
-genUnitTyConName   = tcQual   pREL_BASE FSLIT("Unit") genUnitTyConKey
-
--- Base strings Strings
-unpackCStringName       = varQual pREL_BASE FSLIT("unpackCString#") unpackCStringIdKey
-unpackCStringAppendName = varQual pREL_BASE FSLIT("unpackAppendCString#") unpackCStringAppendIdKey
-unpackCStringFoldrName  = varQual pREL_BASE FSLIT("unpackFoldrCString#") unpackCStringFoldrIdKey
-unpackCStringUtf8Name   = varQual pREL_BASE FSLIT("unpackCStringUtf8#") unpackCStringUtf8IdKey
-eqStringName           = varQual pREL_BASE FSLIT("eqString")  eqStringIdKey
-
--- Base classes (Eq, Ord, Functor)
-eqClassName      = clsQual pREL_BASE FSLIT("Eq")      eqClassKey
-eqName           = methName eqClassName FSLIT("==")   eqClassOpKey
-ordClassName     = clsQual pREL_BASE FSLIT("Ord")     ordClassKey
-geName           = methName ordClassName FSLIT(">=")  geClassOpKey
-functorClassName  = clsQual pREL_BASE FSLIT("Functor") functorClassKey
-
--- Class Monad
-monadClassName    = clsQual pREL_BASE FSLIT("Monad")        monadClassKey
-thenMName         = methName monadClassName FSLIT(">>")     thenMClassOpKey
-bindMName         = methName monadClassName FSLIT(">>=")    bindMClassOpKey
-returnMName       = methName monadClassName FSLIT("return") returnMClassOpKey
-failMName         = methName monadClassName FSLIT("fail")   failMClassOpKey
-
--- Random PrelBase functions
-otherwiseIdName   = varQual pREL_BASE FSLIT("otherwise")  otherwiseIdKey
-foldrName        = varQual pREL_BASE FSLIT("foldr")      foldrIdKey
-buildName        = varQual pREL_BASE FSLIT("build")      buildIdKey
-augmentName      = varQual pREL_BASE FSLIT("augment")    augmentIdKey
-appendName       = varQual pREL_BASE FSLIT("++")         appendIdKey
-andName                  = varQual pREL_BASE FSLIT("&&")         andIdKey
-orName           = varQual pREL_BASE FSLIT("||")         orIdKey
-assertName        = varQual pREL_BASE FSLIT("assert")     assertIdKey
-breakpointName    = varQual pREL_BASE FSLIT("breakpoint") breakpointIdKey
-breakpointJumpName
-    = mkInternalName
-        breakpointJumpIdKey
-        (mkOccNameFS varName FSLIT("breakpointJump"))
-        noSrcLoc
-
--- PrelTup
-fstName                  = varQual pREL_TUP FSLIT("fst") fstIdKey
-sndName                  = varQual pREL_TUP FSLIT("snd") sndIdKey
-
--- Module PrelNum
-numClassName     = clsQual pREL_NUM FSLIT("Num") numClassKey
-fromIntegerName   = methName numClassName FSLIT("fromInteger") fromIntegerClassOpKey
-minusName        = methName numClassName FSLIT("-") minusClassOpKey
-negateName       = methName numClassName FSLIT("negate") negateClassOpKey
-plusIntegerName   = varQual pREL_NUM FSLIT("plusInteger") plusIntegerIdKey
-timesIntegerName  = varQual pREL_NUM FSLIT("timesInteger") timesIntegerIdKey
-integerTyConName  = tcQual  pREL_NUM FSLIT("Integer") integerTyConKey
-smallIntegerDataConName = conName integerTyConName FSLIT("S#") smallIntegerDataConKey
-largeIntegerDataConName = conName integerTyConName FSLIT("J#") largeIntegerDataConKey
-
--- PrelReal types and classes
-rationalTyConName   = tcQual  pREL_REAL  FSLIT("Rational") rationalTyConKey
-ratioTyConName     = tcQual  pREL_REAL  FSLIT("Ratio") ratioTyConKey
-ratioDataConName    = conName ratioTyConName FSLIT(":%") ratioDataConKey
-realClassName      = clsQual pREL_REAL  FSLIT("Real") realClassKey
-integralClassName   = clsQual pREL_REAL  FSLIT("Integral") integralClassKey
-realFracClassName   = clsQual pREL_REAL  FSLIT("RealFrac") realFracClassKey
-fractionalClassName = clsQual pREL_REAL  FSLIT("Fractional") fractionalClassKey
-fromRationalName    = methName fractionalClassName  FSLIT("fromRational") fromRationalClassOpKey
-
--- PrelFloat classes
-floatingClassName  = clsQual  pREL_FLOAT FSLIT("Floating") floatingClassKey
-realFloatClassName = clsQual  pREL_FLOAT FSLIT("RealFloat") realFloatClassKey
-
--- Class Ix
-ixClassName = clsQual pREL_ARR FSLIT("Ix") ixClassKey
-
--- Class Typeable
-typeableClassName  = clsQual tYPEABLE FSLIT("Typeable") typeableClassKey
-typeable1ClassName = clsQual tYPEABLE FSLIT("Typeable1") typeable1ClassKey
-typeable2ClassName = clsQual tYPEABLE FSLIT("Typeable2") typeable2ClassKey
-typeable3ClassName = clsQual tYPEABLE FSLIT("Typeable3") typeable3ClassKey
-typeable4ClassName = clsQual tYPEABLE FSLIT("Typeable4") typeable4ClassKey
-typeable5ClassName = clsQual tYPEABLE FSLIT("Typeable5") typeable5ClassKey
-typeable6ClassName = clsQual tYPEABLE FSLIT("Typeable6") typeable6ClassKey
-typeable7ClassName = clsQual tYPEABLE FSLIT("Typeable7") typeable7ClassKey
-
-typeableClassNames =   [ typeableClassName, typeable1ClassName, typeable2ClassName
-                       , typeable3ClassName, typeable4ClassName, typeable5ClassName
-                       , typeable6ClassName, typeable7ClassName ]
-
--- Class Data
-dataClassName = clsQual gENERICS FSLIT("Data") dataClassKey
-
--- Error module
-assertErrorName          = varQual pREL_ERR FSLIT("assertError") assertErrorIdKey
-
--- Enum module (Enum, Bounded)
-enumClassName     = clsQual pREL_ENUM FSLIT("Enum") enumClassKey
-enumFromName      = methName enumClassName FSLIT("enumFrom") enumFromClassOpKey
-enumFromToName    = methName enumClassName FSLIT("enumFromTo") enumFromToClassOpKey
-enumFromThenName   = methName enumClassName FSLIT("enumFromThen") enumFromThenClassOpKey
-enumFromThenToName = methName enumClassName FSLIT("enumFromThenTo") enumFromThenToClassOpKey
-boundedClassName   = clsQual pREL_ENUM FSLIT("Bounded") boundedClassKey
-
--- List functions
-concatName       = varQual pREL_LIST FSLIT("concat") concatIdKey
-filterName       = varQual pREL_LIST FSLIT("filter") filterIdKey
-zipName                  = varQual pREL_LIST FSLIT("zip") zipIdKey
-
--- Class Show
-showClassName    = clsQual pREL_SHOW FSLIT("Show")       showClassKey
-
--- Class Read
-readClassName     = clsQual pREL_READ FSLIT("Read") readClassKey
-
--- parallel array types and functions
-enumFromToPName           = varQual pREL_PARR FSLIT("enumFromToP") enumFromToPIdKey
-enumFromThenToPName= varQual pREL_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey
-nullPName        = varQual pREL_PARR FSLIT("nullP")             nullPIdKey
-lengthPName      = varQual pREL_PARR FSLIT("lengthP")           lengthPIdKey
-replicatePName   = varQual pREL_PARR FSLIT("replicateP")        replicatePIdKey
-mapPName         = varQual pREL_PARR FSLIT("mapP")              mapPIdKey
-filterPName      = varQual pREL_PARR FSLIT("filterP")           filterPIdKey
-zipPName         = varQual pREL_PARR FSLIT("zipP")              zipPIdKey
-crossPName       = varQual pREL_PARR FSLIT("crossP")            crossPIdKey
-indexPName       = varQual pREL_PARR FSLIT("!:")                indexPIdKey
-toPName                  = varQual pREL_PARR FSLIT("toP")               toPIdKey
-bpermutePName     = varQual pREL_PARR FSLIT("bpermuteP")    bpermutePIdKey
-bpermuteDftPName  = varQual pREL_PARR FSLIT("bpermuteDftP") bpermuteDftPIdKey
-indexOfPName      = varQual pREL_PARR FSLIT("indexOfP")     indexOfPIdKey
-
--- IOBase things
-ioTyConName      = tcQual  pREL_IO_BASE FSLIT("IO") ioTyConKey
-ioDataConName     = conName ioTyConName  FSLIT("IO") ioDataConKey
-thenIOName       = varQual pREL_IO_BASE FSLIT("thenIO") thenIOIdKey
-bindIOName       = varQual pREL_IO_BASE FSLIT("bindIO") bindIOIdKey
-returnIOName     = varQual pREL_IO_BASE FSLIT("returnIO") returnIOIdKey
-failIOName       = varQual pREL_IO_BASE FSLIT("failIO") failIOIdKey
-
--- IO things
-printName        = varQual sYSTEM_IO FSLIT("print") printIdKey
-
--- Int, Word, and Addr things
-int8TyConName     = tcQual pREL_INT  FSLIT("Int8") int8TyConKey
-int16TyConName    = tcQual pREL_INT  FSLIT("Int16") int16TyConKey
-int32TyConName    = tcQual pREL_INT  FSLIT("Int32") int32TyConKey
-int64TyConName    = tcQual pREL_INT  FSLIT("Int64") int64TyConKey
-
--- Word module
-word8TyConName    = tcQual  pREL_WORD FSLIT("Word8")  word8TyConKey
-word16TyConName   = tcQual  pREL_WORD FSLIT("Word16") word16TyConKey
-word32TyConName   = tcQual  pREL_WORD FSLIT("Word32") word32TyConKey
-word64TyConName   = tcQual  pREL_WORD FSLIT("Word64") word64TyConKey
-wordTyConName     = tcQual  pREL_WORD FSLIT("Word")   wordTyConKey
-wordDataConName   = conName wordTyConName FSLIT("W#") wordDataConKey
-
--- Addr module
-addrTyConName    = tcQual   aDDR FSLIT("Addr") addrTyConKey
-
--- PrelPtr module
-ptrTyConName     = tcQual   pREL_PTR FSLIT("Ptr") ptrTyConKey
-funPtrTyConName          = tcQual   pREL_PTR FSLIT("FunPtr") funPtrTyConKey
-
--- Byte array types
-byteArrayTyConName       = tcQual pREL_BYTEARR  FSLIT("ByteArray") byteArrayTyConKey
-mutableByteArrayTyConName = tcQual pREL_BYTEARR  FSLIT("MutableByteArray") mutableByteArrayTyConKey
-
--- Foreign objects and weak pointers
-stablePtrTyConName    = tcQual   pREL_STABLE FSLIT("StablePtr") stablePtrTyConKey
-newStablePtrName      = varQual  pREL_STABLE FSLIT("newStablePtr") newStablePtrIdKey
-
--- PrelST module
-runSTRepName      = varQual pREL_ST  FSLIT("runSTRep") runSTRepIdKey
-
--- The "split" Id for splittable implicit parameters
-splittableClassName = clsQual gLA_EXTS FSLIT("Splittable") splittableClassKey
-splitName           = methName splittableClassName FSLIT("split") splitIdKey
-
--- Recursive-do notation
-monadFixClassName  = clsQual mONAD_FIX FSLIT("MonadFix") monadFixClassKey
-mfixName          = methName monadFixClassName FSLIT("mfix") mfixIdKey
-
--- Arrow notation
-arrAName          = varQual aRROW FSLIT("arr")   arrAIdKey
-composeAName      = varQual aRROW FSLIT(">>>")   composeAIdKey
-firstAName        = varQual aRROW FSLIT("first") firstAIdKey
-appAName          = varQual aRROW FSLIT("app")   appAIdKey
-choiceAName       = varQual aRROW FSLIT("|||")   choiceAIdKey
-loopAName         = varQual aRROW FSLIT("loop")  loopAIdKey
-
--- Other classes, needed for type defaulting
-monadPlusClassName  = clsQual mONAD FSLIT("MonadPlus")  monadPlusClassKey
-randomClassName     = clsQual rANDOM FSLIT("Random")    randomClassKey
-randomGenClassName  = clsQual rANDOM FSLIT("RandomGen") randomGenClassKey
-
--- dotnet interop
-objectTyConName            = tcQual   dOTNET FSLIT("Object") objectTyConKey
-       -- objectTyConName was "wTcQual", but that's gone now, and
-       -- I can't see why it was wired in anyway...
-unmarshalObjectName = varQual  dOTNET FSLIT("unmarshalObject") unmarshalObjectIdKey
-marshalObjectName   = varQual  dOTNET FSLIT("marshalObject") marshalObjectIdKey
-marshalStringName   = varQual  dOTNET FSLIT("marshalString") marshalStringIdKey
-unmarshalStringName = varQual  dOTNET FSLIT("unmarshalString") unmarshalStringIdKey
-checkDotnetResName  = varQual  dOTNET FSLIT("checkResult")     checkDotnetResNameIdKey
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsection{Local helpers}
-%*                                                                     *
-%************************************************************************
-
-All these are original names; hence mkOrig
-
-\begin{code}
-varQual  = mk_known_key_name varName
-tcQual   = mk_known_key_name tcName
-clsQual  = mk_known_key_name clsName
-
-mk_known_key_name space mod str uniq 
-  = mkExternalName uniq mod (mkOccNameFS space str) 
-                  Nothing noSrcLoc
-
-conName :: Name -> FastString -> Unique -> Name
-conName tycon occ uniq
-  = mkExternalName uniq (nameModule tycon) (mkOccNameFS dataName occ) 
-                  (Just tycon) noSrcLoc
-
-methName :: Name -> FastString -> Unique -> Name
-methName cls occ uniq
-  = mkExternalName uniq (nameModule cls) (mkVarOccFS occ) 
-                  (Just cls) noSrcLoc
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsubsection[Uniques-prelude-Classes]{@Uniques@ for wired-in @Classes@}
-%*                                                                     *
-%************************************************************************
---MetaHaskell extension hand allocate keys here
-
-\begin{code}
-boundedClassKey                = mkPreludeClassUnique 1 
-enumClassKey           = mkPreludeClassUnique 2 
-eqClassKey             = mkPreludeClassUnique 3 
-floatingClassKey       = mkPreludeClassUnique 5 
-fractionalClassKey     = mkPreludeClassUnique 6 
-integralClassKey       = mkPreludeClassUnique 7 
-monadClassKey          = mkPreludeClassUnique 8 
-dataClassKey           = mkPreludeClassUnique 9
-functorClassKey                = mkPreludeClassUnique 10
-numClassKey            = mkPreludeClassUnique 11
-ordClassKey            = mkPreludeClassUnique 12
-readClassKey           = mkPreludeClassUnique 13
-realClassKey           = mkPreludeClassUnique 14
-realFloatClassKey      = mkPreludeClassUnique 15
-realFracClassKey       = mkPreludeClassUnique 16
-showClassKey           = mkPreludeClassUnique 17
-ixClassKey             = mkPreludeClassUnique 18
-
-typeableClassKey       = mkPreludeClassUnique 20
-typeable1ClassKey      = mkPreludeClassUnique 21
-typeable2ClassKey      = mkPreludeClassUnique 22
-typeable3ClassKey      = mkPreludeClassUnique 23
-typeable4ClassKey      = mkPreludeClassUnique 24
-typeable5ClassKey      = mkPreludeClassUnique 25
-typeable6ClassKey      = mkPreludeClassUnique 26
-typeable7ClassKey      = mkPreludeClassUnique 27
-
-monadFixClassKey       = mkPreludeClassUnique 28
-splittableClassKey     = mkPreludeClassUnique 29
-
-monadPlusClassKey      = mkPreludeClassUnique 30
-randomClassKey         = mkPreludeClassUnique 31
-randomGenClassKey      = mkPreludeClassUnique 32
-\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
-charPrimTyConKey                       = mkPreludeTyConUnique  7
-charTyConKey                           = mkPreludeTyConUnique  8
-doublePrimTyConKey                     = mkPreludeTyConUnique  9
-doubleTyConKey                         = mkPreludeTyConUnique 10 
-floatPrimTyConKey                      = mkPreludeTyConUnique 11
-floatTyConKey                          = mkPreludeTyConUnique 12
-funTyConKey                            = mkPreludeTyConUnique 13
-intPrimTyConKey                                = mkPreludeTyConUnique 14
-intTyConKey                            = mkPreludeTyConUnique 15
-int8TyConKey                           = mkPreludeTyConUnique 16
-int16TyConKey                          = mkPreludeTyConUnique 17
-int32PrimTyConKey                      = mkPreludeTyConUnique 18
-int32TyConKey                          = mkPreludeTyConUnique 19
-int64PrimTyConKey                      = mkPreludeTyConUnique 20
-int64TyConKey                          = mkPreludeTyConUnique 21
-integerTyConKey                                = mkPreludeTyConUnique 22
-listTyConKey                           = mkPreludeTyConUnique 23
-foreignObjPrimTyConKey                 = mkPreludeTyConUnique 24
-weakPrimTyConKey                       = mkPreludeTyConUnique 27
-mutableArrayPrimTyConKey               = mkPreludeTyConUnique 28
-mutableByteArrayPrimTyConKey           = mkPreludeTyConUnique 29
-orderingTyConKey                       = mkPreludeTyConUnique 30
-mVarPrimTyConKey                       = mkPreludeTyConUnique 31
-ratioTyConKey                          = mkPreludeTyConUnique 32
-rationalTyConKey                       = mkPreludeTyConUnique 33
-realWorldTyConKey                      = mkPreludeTyConUnique 34
-stablePtrPrimTyConKey                  = mkPreludeTyConUnique 35
-stablePtrTyConKey                      = mkPreludeTyConUnique 36
-statePrimTyConKey                      = mkPreludeTyConUnique 50
-stableNamePrimTyConKey                 = mkPreludeTyConUnique 51
-stableNameTyConKey                     = mkPreludeTyConUnique 52
-mutableByteArrayTyConKey               = mkPreludeTyConUnique 53
-mutVarPrimTyConKey                     = mkPreludeTyConUnique 55
-ioTyConKey                             = mkPreludeTyConUnique 56
-byteArrayTyConKey                      = mkPreludeTyConUnique 57
-wordPrimTyConKey                       = mkPreludeTyConUnique 58
-wordTyConKey                           = mkPreludeTyConUnique 59
-word8TyConKey                          = mkPreludeTyConUnique 60
-word16TyConKey                         = mkPreludeTyConUnique 61 
-word32PrimTyConKey                     = mkPreludeTyConUnique 62 
-word32TyConKey                         = mkPreludeTyConUnique 63
-word64PrimTyConKey                     = mkPreludeTyConUnique 64
-word64TyConKey                         = mkPreludeTyConUnique 65
-liftedConKey                           = mkPreludeTyConUnique 66
-unliftedConKey                         = mkPreludeTyConUnique 67
-anyBoxConKey                           = mkPreludeTyConUnique 68
-kindConKey                             = mkPreludeTyConUnique 69
-boxityConKey                           = mkPreludeTyConUnique 70
-typeConKey                             = mkPreludeTyConUnique 71
-threadIdPrimTyConKey                   = mkPreludeTyConUnique 72
-bcoPrimTyConKey                                = mkPreludeTyConUnique 73
-ptrTyConKey                            = mkPreludeTyConUnique 74
-funPtrTyConKey                         = mkPreludeTyConUnique 75
-tVarPrimTyConKey                       = mkPreludeTyConUnique 76
-
--- Generic Type Constructors
-crossTyConKey                          = mkPreludeTyConUnique 79
-plusTyConKey                           = mkPreludeTyConUnique 80
-genUnitTyConKey                                = mkPreludeTyConUnique 81
-
--- Parallel array type constructor
-parrTyConKey                           = mkPreludeTyConUnique 82
-
--- dotnet interop
-objectTyConKey                         = mkPreludeTyConUnique 83
-
-eitherTyConKey                         = mkPreludeTyConUnique 84
-
----------------- Template Haskell -------------------
---     USES TyConUniques 100-129
------------------------------------------------------
-
-unitTyConKey = mkTupleTyConUnique Boxed 0
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsubsection[Uniques-prelude-DataCons]{@Uniques@ for wired-in @DataCons@}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-charDataConKey                         = mkPreludeDataConUnique  1
-consDataConKey                         = mkPreludeDataConUnique  2
-doubleDataConKey                       = mkPreludeDataConUnique  3
-falseDataConKey                                = mkPreludeDataConUnique  4
-floatDataConKey                                = mkPreludeDataConUnique  5
-intDataConKey                          = mkPreludeDataConUnique  6
-smallIntegerDataConKey                 = mkPreludeDataConUnique  7
-largeIntegerDataConKey                 = mkPreludeDataConUnique  8
-nilDataConKey                          = mkPreludeDataConUnique 11
-ratioDataConKey                                = mkPreludeDataConUnique 12
-stableNameDataConKey                   = mkPreludeDataConUnique 14
-trueDataConKey                         = mkPreludeDataConUnique 15
-wordDataConKey                         = mkPreludeDataConUnique 16
-ioDataConKey                           = mkPreludeDataConUnique 17
-
--- Generic data constructors
-crossDataConKey                                = mkPreludeDataConUnique 20
-inlDataConKey                          = mkPreludeDataConUnique 21
-inrDataConKey                          = mkPreludeDataConUnique 22
-genUnitDataConKey                      = mkPreludeDataConUnique 23
-
--- Data constructor for parallel arrays
-parrDataConKey                         = mkPreludeDataConUnique 24
-
-leftDataConKey                         = mkPreludeDataConUnique 25
-rightDataConKey                                = mkPreludeDataConUnique 26
-\end{code}
-
-%************************************************************************
-%*                                                                     *
-\subsubsection[Uniques-prelude-Ids]{@Uniques@ for wired-in @Ids@ (except @DataCons@)}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-absentErrorIdKey             = mkPreludeMiscIdUnique  1
-augmentIdKey                 = mkPreludeMiscIdUnique  3
-appendIdKey                  = mkPreludeMiscIdUnique  4
-buildIdKey                   = mkPreludeMiscIdUnique  5
-errorIdKey                   = mkPreludeMiscIdUnique  6
-foldlIdKey                   = mkPreludeMiscIdUnique  7
-foldrIdKey                   = mkPreludeMiscIdUnique  8
-recSelErrorIdKey             = mkPreludeMiscIdUnique  9
-integerMinusOneIdKey         = mkPreludeMiscIdUnique 10
-integerPlusOneIdKey          = mkPreludeMiscIdUnique 11
-integerPlusTwoIdKey          = mkPreludeMiscIdUnique 12
-integerZeroIdKey             = mkPreludeMiscIdUnique 13
-int2IntegerIdKey             = mkPreludeMiscIdUnique 14
-seqIdKey                     = mkPreludeMiscIdUnique 15
-irrefutPatErrorIdKey         = mkPreludeMiscIdUnique 16
-eqStringIdKey                = mkPreludeMiscIdUnique 17
-noMethodBindingErrorIdKey     = mkPreludeMiscIdUnique 18
-nonExhaustiveGuardsErrorIdKey = mkPreludeMiscIdUnique 19
-runtimeErrorIdKey            = mkPreludeMiscIdUnique 20 
-parErrorIdKey                = mkPreludeMiscIdUnique 21
-parIdKey                     = mkPreludeMiscIdUnique 22
-patErrorIdKey                = mkPreludeMiscIdUnique 23
-realWorldPrimIdKey           = mkPreludeMiscIdUnique 24
-recConErrorIdKey             = mkPreludeMiscIdUnique 25
-recUpdErrorIdKey             = mkPreludeMiscIdUnique 26
-traceIdKey                   = mkPreludeMiscIdUnique 27
-unpackCStringUtf8IdKey       = mkPreludeMiscIdUnique 28
-unpackCStringAppendIdKey      = mkPreludeMiscIdUnique 29
-unpackCStringFoldrIdKey              = mkPreludeMiscIdUnique 30
-unpackCStringIdKey           = mkPreludeMiscIdUnique 31
-
-unsafeCoerceIdKey            = mkPreludeMiscIdUnique 32
-concatIdKey                  = mkPreludeMiscIdUnique 33
-filterIdKey                  = mkPreludeMiscIdUnique 34
-zipIdKey                     = mkPreludeMiscIdUnique 35
-bindIOIdKey                  = mkPreludeMiscIdUnique 36
-returnIOIdKey                = mkPreludeMiscIdUnique 37
-deRefStablePtrIdKey          = mkPreludeMiscIdUnique 38
-newStablePtrIdKey            = mkPreludeMiscIdUnique 39
-plusIntegerIdKey             = mkPreludeMiscIdUnique 41
-timesIntegerIdKey            = mkPreludeMiscIdUnique 42
-printIdKey                   = mkPreludeMiscIdUnique 43
-failIOIdKey                  = mkPreludeMiscIdUnique 44
-nullAddrIdKey                = mkPreludeMiscIdUnique 46
-voidArgIdKey                 = mkPreludeMiscIdUnique 47
-splitIdKey                   = mkPreludeMiscIdUnique 48
-fstIdKey                     = mkPreludeMiscIdUnique 49
-sndIdKey                     = mkPreludeMiscIdUnique 50
-otherwiseIdKey               = mkPreludeMiscIdUnique 51
-assertIdKey                  = mkPreludeMiscIdUnique 53
-runSTRepIdKey                = mkPreludeMiscIdUnique 54
-
-rootMainKey                  = mkPreludeMiscIdUnique 55
-runMainKey                   = mkPreludeMiscIdUnique 56
-
-andIdKey                     = mkPreludeMiscIdUnique 57
-orIdKey                              = mkPreludeMiscIdUnique 58
-thenIOIdKey                  = mkPreludeMiscIdUnique 59
-lazyIdKey                    = mkPreludeMiscIdUnique 60
-assertErrorIdKey             = mkPreludeMiscIdUnique 61
-
-breakpointIdKey               = mkPreludeMiscIdUnique 62
-breakpointJumpIdKey           = mkPreludeMiscIdUnique 63
-
--- Parallel array functions
-nullPIdKey                   = mkPreludeMiscIdUnique 80
-lengthPIdKey                 = mkPreludeMiscIdUnique 81
-replicatePIdKey                      = mkPreludeMiscIdUnique 82
-mapPIdKey                    = mkPreludeMiscIdUnique 83
-filterPIdKey                 = mkPreludeMiscIdUnique 84
-zipPIdKey                    = mkPreludeMiscIdUnique 85
-crossPIdKey                  = mkPreludeMiscIdUnique 86
-indexPIdKey                  = mkPreludeMiscIdUnique 87
-toPIdKey                     = mkPreludeMiscIdUnique 88
-enumFromToPIdKey              = mkPreludeMiscIdUnique 89
-enumFromThenToPIdKey          = mkPreludeMiscIdUnique 90
-bpermutePIdKey               = mkPreludeMiscIdUnique 91
-bpermuteDftPIdKey            = mkPreludeMiscIdUnique 92
-indexOfPIdKey                = mkPreludeMiscIdUnique 93
-
--- dotnet interop
-unmarshalObjectIdKey          = mkPreludeMiscIdUnique 94
-marshalObjectIdKey            = mkPreludeMiscIdUnique 95
-marshalStringIdKey            = mkPreludeMiscIdUnique 96
-unmarshalStringIdKey          = mkPreludeMiscIdUnique 97
-checkDotnetResNameIdKey       = mkPreludeMiscIdUnique 98
-
-\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}
-       -- Just a place holder for  unbound variables  produced by the renamer:
-unboundKey                   = mkPreludeMiscIdUnique 101 
-
-fromIntegerClassOpKey        = mkPreludeMiscIdUnique 102
-minusClassOpKey                      = mkPreludeMiscIdUnique 103
-fromRationalClassOpKey       = mkPreludeMiscIdUnique 104
-enumFromClassOpKey           = mkPreludeMiscIdUnique 105
-enumFromThenClassOpKey       = mkPreludeMiscIdUnique 106
-enumFromToClassOpKey         = mkPreludeMiscIdUnique 107
-enumFromThenToClassOpKey      = mkPreludeMiscIdUnique 108
-eqClassOpKey                 = mkPreludeMiscIdUnique 109
-geClassOpKey                 = mkPreludeMiscIdUnique 110
-negateClassOpKey             = mkPreludeMiscIdUnique 111
-failMClassOpKey                      = mkPreludeMiscIdUnique 112
-bindMClassOpKey                      = mkPreludeMiscIdUnique 113 -- (>>=)
-thenMClassOpKey                      = mkPreludeMiscIdUnique 114 -- (>>)
-returnMClassOpKey            = mkPreludeMiscIdUnique 117
-
--- Recursive do notation
-mfixIdKey      = mkPreludeMiscIdUnique 118
-
--- Arrow notation
-arrAIdKey      = mkPreludeMiscIdUnique 119
-composeAIdKey  = mkPreludeMiscIdUnique 120 -- >>>
-firstAIdKey    = mkPreludeMiscIdUnique 121
-appAIdKey      = mkPreludeMiscIdUnique 122
-choiceAIdKey   = mkPreludeMiscIdUnique 123 --  |||
-loopAIdKey     = mkPreludeMiscIdUnique 124
-
----------------- Template Haskell -------------------
---     USES IdUniques 200-399
------------------------------------------------------
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-\subsection{Standard groups of types}
-%*                                                                     *
-%************************************************************************
-
-\begin{code}
-numericTyKeys = 
-       [ addrTyConKey
-       , wordTyConKey
-       , intTyConKey
-       , integerTyConKey
-       , doubleTyConKey
-       , floatTyConKey
-       ]
-
-       -- Renamer always imports these data decls replete with constructors
-       -- so that desugarer can always see their constructors.  Ugh!
-cCallishTyKeys = 
-       [ addrTyConKey
-       , wordTyConKey
-       , byteArrayTyConKey
-       , mutableByteArrayTyConKey
-       , stablePtrTyConKey
-       , int8TyConKey
-       , int16TyConKey
-       , int32TyConKey
-       , int64TyConKey
-       , word8TyConKey
-       , word16TyConKey
-       , word32TyConKey
-       , word64TyConKey
-       ]
-\end{code}
-
-
-%************************************************************************
-%*                                                                     *
-\subsection[Class-std-groups]{Standard groups of Prelude classes}
-%*                                                                     *
-%************************************************************************
-
-NOTE: @Eq@ and @Text@ do need to appear in @standardClasses@
-even though every numeric class has these two as a superclass,
-because the list of ambiguous dictionaries hasn't been simplified.
-
-\begin{code}
-numericClassKeys =
-       [ numClassKey
-       , realClassKey
-       , integralClassKey
-       ]
-       ++ fractionalClassKeys
-
-fractionalClassKeys = 
-       [ fractionalClassKey
-       , floatingClassKey
-       , realFracClassKey
-       , realFloatClassKey
-       ]
-
-       -- the strictness analyser needs to know about numeric types
-       -- (see SaAbsInt.lhs)
-needsDataDeclCtxtClassKeys = -- see comments in TcDeriv
-       [ readClassKey
-       ]
-
--- The "standard classes" are used in defaulting (Haskell 98 report 4.3.4),
--- and are: "classes defined in the Prelude or a standard library"
-standardClassKeys = derivableClassKeys ++ numericClassKeys
-                 ++ [randomClassKey, randomGenClassKey,
-                     functorClassKey, 
-                     monadClassKey, monadPlusClassKey]
-\end{code}
-
-@derivableClassKeys@ is also used in checking \tr{deriving} constructs
-(@TcDeriv@).
-
-\begin{code}
-derivableClassKeys
-  = [ eqClassKey, ordClassKey, enumClassKey, ixClassKey,
-      boundedClassKey, showClassKey, readClassKey ]
-\end{code}
-