-{-% DrIFT (Automatic class derivations for Haskell) v1.1 %-}
%
+% (c) The University of Glasgow 2006
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-\section[OccName]{@OccName@}
-
\begin{code}
module OccName (
-- * The NameSpace type; abstact
-- The OccEnv type
OccEnv, emptyOccEnv, unitOccEnv, extendOccEnv, mapOccEnv,
- lookupOccEnv, mkOccEnv, extendOccEnvList, elemOccEnv,
+ lookupOccEnv, mkOccEnv, mkOccEnv_C, extendOccEnvList, elemOccEnv,
occEnvElts, foldOccEnv, plusOccEnv, plusOccEnv_C, extendOccEnv_C,
-- The OccSet type
#include "HsVersions.h"
-import Util ( thenCmp )
-import Unique ( Unique, mkUnique, Uniquable(..) )
-import BasicTypes ( Boxity(..), Arity )
-import StaticFlags ( opt_PprStyle_Debug )
+import Util
+import Unique
+import BasicTypes
+import StaticFlags
import UniqFM
import UniqSet
import FastString
import Outputable
import Binary
-import GLAEXTS
-
-import Data.Char ( isUpper, isLower, ord )
+import GHC.Exts
+import Data.Char
-- Unicode TODO: put isSymbol in libcompat
#if __GLASGOW_HASKELL__ > 604
extendOccEnvList :: OccEnv a -> [(OccName, a)] -> OccEnv a
lookupOccEnv :: OccEnv a -> OccName -> Maybe a
mkOccEnv :: [(OccName,a)] -> OccEnv a
+mkOccEnv_C :: (a -> a -> a) -> [(OccName,a)] -> OccEnv a
elemOccEnv :: OccName -> OccEnv a -> Bool
foldOccEnv :: (a -> b -> b) -> b -> OccEnv a -> b
occEnvElts :: OccEnv a -> [a]
extendOccEnv_C = addToUFM_C
mapOccEnv = mapUFM
+mkOccEnv_C comb l = addListToUFM_C comb emptyOccEnv l
+
type OccSet = UniqFM OccName
emptyOccSet :: OccSet
$w... workers
:T... compiler-generated tycons for dictionaries
:D... ...ditto data cons
+ :Co... ...ditto coercions
$sf.. specialised version of f
in encoded form these appear as Zdfxxx etc
mkIPOcc = mk_simple_deriv varName "$i"
mkSpecOcc = mk_simple_deriv varName "$s"
mkForeignExportOcc = mk_simple_deriv varName "$f"
-mkNewTyCoOcc = mk_simple_deriv tcName "Co"
-mkInstTyCoOcc = mk_simple_deriv tcName "Co" -- derived from rep ty
+mkNewTyCoOcc = mk_simple_deriv tcName ":Co"
+mkInstTyCoOcc = mk_simple_deriv tcName ":Co" -- derived from rep ty
-- Generic derivable classes
mkGenOcc1 = mk_simple_deriv varName "$gfrom"