Safe Haskell | None |
---|---|
Language | Haskell2010 |
Unique
Synopsis
- data Unique
- class Uniquable a where
- uNIQUE_BITS :: Int
- hasKey :: Uniquable a => a -> Unique -> Bool
- pprUniqueAlways :: Unique -> SDoc
- mkUniqueGrimily :: Int -> Unique
- getKey :: Unique -> Int
- mkUnique :: Char -> Int -> Unique
- unpkUnique :: Unique -> (Char, Int)
- eqUnique :: Unique -> Unique -> Bool
- ltUnique :: Unique -> Unique -> Bool
- deriveUnique :: Unique -> Int -> Unique
- newTagUnique :: Unique -> Char -> Unique
- initTyVarUnique :: Unique
- initExitJoinUnique :: Unique
- nonDetCmpUnique :: Unique -> Unique -> Ordering
- isValidKnownKeyUnique :: Unique -> Bool
- mkAlphaTyVarUnique :: Int -> Unique
- mkPrimOpIdUnique :: Int -> Unique
- mkPreludeMiscIdUnique :: Int -> Unique
- mkPreludeDataConUnique :: Arity -> Unique
- mkPreludeTyConUnique :: Int -> Unique
- mkPreludeClassUnique :: Int -> Unique
- mkCoVarUnique :: Int -> Unique
- mkVarOccUnique :: FastString -> Unique
- mkDataOccUnique :: FastString -> Unique
- mkTvOccUnique :: FastString -> Unique
- mkTcOccUnique :: FastString -> Unique
- mkRegSingleUnique :: Int -> Unique
- mkRegPairUnique :: Int -> Unique
- mkRegClassUnique :: Int -> Unique
- mkRegSubUnique :: Int -> Unique
- mkCostCentreUnique :: Int -> Unique
- mkBuiltinUnique :: Int -> Unique
- mkPseudoUniqueD :: Int -> Unique
- mkPseudoUniqueE :: Int -> Unique
- mkPseudoUniqueH :: Int -> Unique
- tyConRepNameUnique :: Unique -> Unique
- dataConWorkerUnique :: Unique -> Unique
- dataConTyRepNameUnique :: Unique -> Unique
Main data types
Unique identifier.
The type of unique identifiers that are used in many places in GHC
for fast ordering and equality tests. You should generate these with
the functions from the UniqSupply
module
These are sometimes also referred to as "keys" in comments in GHC.
class Uniquable a where Source #
Class of things that we can obtain a Unique
from
Instances
Uniquable Int # | |
Uniquable Name # | |
Uniquable OccName # | |
Uniquable TyCon # | |
Uniquable FastString # | |
Uniquable ComponentId # | |
Uniquable InstalledUnitId # | |
Uniquable UnitId # | |
Uniquable ModuleName # | |
Uniquable Module # | |
Uniquable Unique # | |
Uniquable RegClass # | |
Uniquable Reg # | so we can put regs in UniqSets |
Uniquable Reg # | |
Uniquable RealReg # | |
Uniquable VirtualReg # | |
Uniquable PackageName # | |
Defined in PackageConfig Methods getUnique :: PackageName -> Unique Source # | |
Uniquable SourcePackageId # | |
Defined in PackageConfig Methods getUnique :: SourcePackageId -> Unique Source # | |
Uniquable Var # | |
Uniquable PatSyn # | |
Uniquable DataCon # | |
Uniquable ConLike # | |
Uniquable CoAxiomRule # | |
Uniquable Class # | |
Uniquable Label # | |
Uniquable LocalReg # | |
Uniquable EvBindsVar # | |
Defined in TcEvidence Methods getUnique :: EvBindsVar -> Unique Source # | |
Uniquable name => Uniquable (AnnTarget name) # | |
Uniquable (CoAxiom br) # | |
uNIQUE_BITS :: Int Source #
Constructors, destructors and operations on Unique
s
pprUniqueAlways :: Unique -> SDoc Source #
mkUniqueGrimily :: Int -> Unique Source #
isValidKnownKeyUnique :: Unique -> Bool Source #
The interface file symbol-table encoding assumes that known-key uniques fit in 30-bits; verify this.
See Note [Symbol table representation of names] in BinIface for details.
Making built-in uniques
mkAlphaTyVarUnique :: Int -> Unique Source #
mkPrimOpIdUnique :: Int -> Unique Source #
mkPreludeMiscIdUnique :: Int -> Unique Source #
mkPreludeDataConUnique :: Arity -> Unique Source #
mkPreludeTyConUnique :: Int -> Unique Source #
mkPreludeClassUnique :: Int -> Unique Source #
mkCoVarUnique :: Int -> Unique Source #
mkVarOccUnique :: FastString -> Unique Source #
mkDataOccUnique :: FastString -> Unique Source #
mkTvOccUnique :: FastString -> Unique Source #
mkTcOccUnique :: FastString -> Unique Source #
mkRegSingleUnique :: Int -> Unique Source #
mkRegPairUnique :: Int -> Unique Source #
mkRegClassUnique :: Int -> Unique Source #
mkRegSubUnique :: Int -> Unique Source #
mkCostCentreUnique :: Int -> Unique Source #
mkBuiltinUnique :: Int -> Unique Source #
mkPseudoUniqueD :: Int -> Unique Source #
mkPseudoUniqueE :: Int -> Unique Source #
mkPseudoUniqueH :: Int -> Unique Source #
Deriving uniques
From TyCon name uniques
tyConRepNameUnique :: Unique -> Unique Source #
From DataCon name uniques
dataConWorkerUnique :: Unique -> Unique Source #