\section[PrelInfo]{The @PrelInfo@ interface to the compiler's prelude knowledge}
\begin{code}
-{-# OPTIONS_GHC -w #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/WorkingConventions#Warnings
--- for details
-
module PrelInfo (
- module MkId,
+ wiredInIds, ghcPrimIds,
+ primOpRules, builtinRules,
- ghcPrimExports,
- wiredInThings, basicKnownKeyNames,
- primOpId,
-
- -- Random other things
- maybeCharLikeCon, maybeIntLikeCon,
+ ghcPrimExports,
+ wiredInThings, basicKnownKeyNames,
+ primOpId,
+
+ -- Random other things
+ maybeCharLikeCon, maybeIntLikeCon,
- -- Class categories
- isNumericClass, isStandardClass
+ -- Class categories
+ isNumericClass, isStandardClass
) where
#include "HsVersions.h"
-import PrelNames ( basicKnownKeyNames,
- hasKey, charDataConKey, intDataConKey,
- numericClassKeys, standardClassKeys )
-
+import PrelNames ( basicKnownKeyNames,
+ hasKey, charDataConKey, intDataConKey,
+ numericClassKeys, standardClassKeys )
+import PrelRules
import PrimOp ( PrimOp, allThePrimOps, primOpOcc, primOpTag, maxPrimOpTag )
import DataCon ( DataCon )
import Id ( Id, idName )
import TyCon ( tyConName )
import Util ( isIn )
-import Array ( Array, array, (!) )
+import Data.Array
\end{code}
%************************************************************************
Notes about wired in things
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Wired-in things are Ids/TyCons that are completely known to the compiler.
+* Wired-in things are Ids\/TyCons that are completely known to the compiler.
They are global values in GHC, (e.g. listTyCon :: TyCon).
* A wired in Name contains the thing itself inside the Name:
isNumericClass clas = classKey clas `is_elem` numericClassKeys
isStandardClass clas = classKey clas `is_elem` standardClassKeys
+
+is_elem :: Eq a => a -> [a] -> Bool
is_elem = isIn "is_X_Class"
\end{code}