Fix Trac #2114: error reporting for 'forall' without appropriate flags
[ghc-hetmet.git] / compiler / prelude / PrelNames.lhs
index 6c4a335..8f06f50 100644 (file)
@@ -36,6 +36,13 @@ Nota Bene: all Names defined in here should come from the base package
 
 
 \begin{code}
+{-# OPTIONS -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/Commentary/CodingStyle#Warnings
+-- for details
+
 module PrelNames (
        Unique, Uniquable(..), hasKey,  -- Re-exported for convenience
 
@@ -49,10 +56,9 @@ module PrelNames (
 
 #include "HsVersions.h"
 
-import PackageConfig
-import Module    ( Module, ModuleName, mkModule, mkModuleNameFS )
-import OccName   ( dataName, tcName, clsName, varName, mkOccNameFS,
-                   mkVarOccFS )
+import Module
+import OccName   ( dataName, tcName, clsName, varName, tvName, 
+                   mkOccNameFS, mkVarOccFS )
 import RdrName   ( RdrName, nameRdrName, mkOrig, rdrNameOcc, mkUnqual )
 import Unique    ( Unique, Uniquable(..), hasKey,
                    mkPreludeMiscIdUnique, mkPreludeDataConUnique,
@@ -169,16 +175,19 @@ basicKnownKeyNames
        -- Stable pointers
        newStablePtrName,
 
+    -- GHC Extensions
+    groupWithName,
+
        -- Strings and lists
        unpackCStringName, unpackCStringAppendName,
        unpackCStringFoldrName, unpackCStringUtf8Name,
 
        -- List operations
-       concatName, filterName,
+       concatName, filterName, mapName,
        zipName, foldrName, buildName, augmentName, appendName,
 
         -- Parallel array operations
-       nullPName, lengthPName, replicatePName, mapPName,
+       nullPName, lengthPName, replicatePName, singletonPName, mapPName,
        filterPName, zipPName, crossMapPName, indexPName,
        toPName, bpermutePName, bpermuteDftPName, indexOfPName,
 
@@ -256,14 +265,15 @@ tYPEABLE  = mkBaseModule FSLIT("Data.Typeable")
 gENERICS       = mkBaseModule FSLIT("Data.Generics.Basics")
 dOTNET         = mkBaseModule FSLIT("GHC.Dotnet")
 rEAD_PREC      = mkBaseModule FSLIT("Text.ParserCombinators.ReadPrec")
-lEX            = mkBaseModule FSLIT("Text.Read.Lex")
+lEX                = mkBaseModule FSLIT("Text.Read.Lex")
 gHC_INT                = mkBaseModule FSLIT("GHC.Int")
 gHC_WORD       = mkBaseModule FSLIT("GHC.Word")
 mONAD          = mkBaseModule FSLIT("Control.Monad")
 mONAD_FIX      = mkBaseModule FSLIT("Control.Monad.Fix")
 aRROW          = mkBaseModule FSLIT("Control.Arrow")
+gHC_DESUGAR = mkBaseModule FSLIT("GHC.Desugar")
 rANDOM         = mkBaseModule FSLIT("System.Random")
-gLA_EXTS       = mkBaseModule FSLIT("GHC.Exts")
+gHC_EXTS       = mkBaseModule FSLIT("GHC.Exts")
 
 mAIN           = mkMainModule_ mAIN_NAME
 rOOT_MAIN      = mkMainModule FSLIT(":Main") -- Root module for initialisation 
@@ -312,10 +322,14 @@ mkTupleModule Unboxed _ = gHC_PRIM
 %************************************************************************
 
 \begin{code}
-main_RDR_Unqual        = mkUnqual varName FSLIT("main")
+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
 
+forall_tv_RDR, dot_tv_RDR :: RdrName
+forall_tv_RDR = mkUnqual tvName FSLIT("forall")
+dot_tv_RDR    = mkUnqual tvName FSLIT(".")
+
 eq_RDR                         = nameRdrName eqName
 ge_RDR                         = nameRdrName geName
 ne_RDR                         = varQual_RDR  gHC_BASE FSLIT("/=")
@@ -489,12 +503,16 @@ bindMName    = methName gHC_BASE FSLIT(">>=")    bindMClassOpKey
 returnMName       = methName gHC_BASE FSLIT("return") returnMClassOpKey
 failMName         = methName gHC_BASE FSLIT("fail")   failMClassOpKey
 
+-- Functions for GHC extensions
+groupWithName  = varQual gHC_EXTS FSLIT("groupWith") groupWithIdKey
+
 -- Random PrelBase functions
 fromStringName = methName dATA_STRING FSLIT("fromString") fromStringClassOpKey
 otherwiseIdName   = varQual gHC_BASE FSLIT("otherwise")  otherwiseIdKey
 foldrName        = varQual gHC_BASE FSLIT("foldr")      foldrIdKey
 buildName        = varQual gHC_BASE FSLIT("build")      buildIdKey
 augmentName      = varQual gHC_BASE FSLIT("augment")    augmentIdKey
+mapName       = varQual gHC_BASE FSLIT("map")        mapIdKey
 appendName       = varQual gHC_BASE FSLIT("++")         appendIdKey
 andName                  = varQual gHC_BASE FSLIT("&&")         andIdKey
 orName           = varQual gHC_BASE FSLIT("||")         orIdKey
@@ -596,6 +614,7 @@ enumFromToPName        = varQual gHC_PARR FSLIT("enumFromToP") enumFromToPIdKey
 enumFromThenToPName= varQual gHC_PARR FSLIT("enumFromThenToP") enumFromThenToPIdKey
 nullPName        = varQual gHC_PARR FSLIT("nullP")              nullPIdKey
 lengthPName      = varQual gHC_PARR FSLIT("lengthP")            lengthPIdKey
+singletonPName    = varQual gHC_PARR FSLIT("singletonP")         singletonPIdKey
 replicatePName   = varQual gHC_PARR FSLIT("replicateP")         replicatePIdKey
 mapPName         = varQual gHC_PARR FSLIT("mapP")               mapPIdKey
 filterPName      = varQual gHC_PARR FSLIT("filterP")            filterPIdKey
@@ -649,7 +668,7 @@ mfixName       = methName mONAD_FIX FSLIT("mfix") mfixIdKey
 
 -- Arrow notation
 arrAName          = varQual aRROW FSLIT("arr")   arrAIdKey
-composeAName      = varQual aRROW FSLIT(">>>")   composeAIdKey
+composeAName      = varQual gHC_DESUGAR FSLIT(">>>") composeAIdKey
 firstAName        = varQual aRROW FSLIT("first") firstAIdKey
 appAName          = varQual aRROW FSLIT("app")   appAIdKey
 choiceAName       = varQual aRROW FSLIT("|||")   choiceAIdKey
@@ -967,7 +986,11 @@ breakpointAutoJumpIdKey       = mkPreludeMiscIdUnique 67
 
 inlineIdKey                  = mkPreludeMiscIdUnique 68
 
+mapIdKey                     = mkPreludeMiscIdUnique 69
+groupWithIdKey        = mkPreludeMiscIdUnique 70
+
 -- Parallel array functions
+singletonPIdKey               = mkPreludeMiscIdUnique 79
 nullPIdKey                   = mkPreludeMiscIdUnique 80
 lengthPIdKey                 = mkPreludeMiscIdUnique 81
 replicatePIdKey                      = mkPreludeMiscIdUnique 82