%
\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 OccName (
-- * The NameSpace type; abstact
NameSpace, tcName, clsName, tcClsName, dataName, varName,
mkDataTOcc, mkDataCOcc, mkDataConWorkerOcc,
mkSuperDictSelOcc, mkLocalOcc, mkMethodOcc, mkInstTyTcOcc,
mkInstTyCoOcc, mkEqPredCoOcc,
+ mkVectOcc, mkVectTyConOcc, mkVectDataConOcc, mkVectIsoOcc,
+ mkPArrayTyConOcc, mkPArrayDataConOcc,
+ mkPReprTyConOcc,
+ mkPADFunOcc,
-- ** Deconstruction
occNameFS, occNameString, occNameSpace,
-- Unicode TODO: put isSymbol in libcompat
#if __GLASGOW_HASKELL__ > 604
-import Data.Char ( isSymbol )
#else
isSymbol = const False
#endif
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
+mkInstTyCoOcc = mk_simple_deriv tcName ":CoF" -- derived from rep ty
mkEqPredCoOcc = mk_simple_deriv tcName "$co"
-- Generic derivable classes
mkDataTOcc = mk_simple_deriv varName "$t"
mkDataCOcc = mk_simple_deriv varName "$c"
+-- Vectorisation
+mkVectOcc = mk_simple_deriv varName "$v_"
+mkVectTyConOcc = mk_simple_deriv tcName ":V_"
+mkVectDataConOcc = mk_simple_deriv dataName ":VD_"
+mkVectIsoOcc = mk_simple_deriv varName "$VI_"
+mkPArrayTyConOcc = mk_simple_deriv tcName ":VP_"
+mkPArrayDataConOcc = mk_simple_deriv dataName ":VPD_"
+mkPReprTyConOcc = mk_simple_deriv tcName ":VR_"
+mkPADFunOcc = mk_simple_deriv varName "$PA_"
+
mk_simple_deriv sp px occ = mk_deriv sp px (occNameString occ)
-- Data constructor workers are made by setting the name space