ghc-8.4.2: The GHC API

Safe HaskellNone
LanguageHaskell2010

Unique

Contents

Synopsis

Main data types

data Unique #

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.

Instances
Eq Unique # 
Instance details

Defined in Unique

Methods

(==) :: Unique -> Unique -> Bool #

(/=) :: Unique -> Unique -> Bool #

Show Unique # 
Instance details

Defined in Unique

Outputable Unique # 
Instance details

Defined in Unique

Methods

ppr :: Unique -> SDoc #

pprPrec :: Rational -> Unique -> SDoc #

Uniquable Unique # 
Instance details

Defined in Unique

Methods

getUnique :: Unique -> Unique #

class Uniquable a where #

Class of things that we can obtain a Unique from

Minimal complete definition

getUnique

Methods

getUnique :: a -> Unique #

Instances
Uniquable Int # 
Instance details

Defined in Unique

Methods

getUnique :: Int -> Unique #

Uniquable Name # 
Instance details

Defined in Name

Methods

getUnique :: Name -> Unique #

Uniquable OccName # 
Instance details

Defined in OccName

Methods

getUnique :: OccName -> Unique #

Uniquable TyCon # 
Instance details

Defined in TyCon

Methods

getUnique :: TyCon -> Unique #

Uniquable FastString # 
Instance details

Defined in Unique

Uniquable ComponentId # 
Instance details

Defined in Module

Uniquable InstalledUnitId # 
Instance details

Defined in Module

Uniquable UnitId # 
Instance details

Defined in Module

Methods

getUnique :: UnitId -> Unique #

Uniquable ModuleName # 
Instance details

Defined in Module

Uniquable Module # 
Instance details

Defined in Module

Methods

getUnique :: Module -> Unique #

Uniquable Unique # 
Instance details

Defined in Unique

Methods

getUnique :: Unique -> Unique #

Uniquable RegClass # 
Instance details

Defined in RegClass

Methods

getUnique :: RegClass -> Unique #

Uniquable Reg #

so we can put regs in UniqSets

Instance details

Defined in RegAlloc.Graph.ArchBase

Methods

getUnique :: Reg -> Unique #

Uniquable Reg # 
Instance details

Defined in Reg

Methods

getUnique :: Reg -> Unique #

Uniquable RealReg # 
Instance details

Defined in Reg

Methods

getUnique :: RealReg -> Unique #

Uniquable VirtualReg # 
Instance details

Defined in Reg

Uniquable Label # 
Instance details

Defined in Hoopl.Label

Methods

getUnique :: Label -> Unique #

Uniquable PackageName # 
Instance details

Defined in PackageConfig

Uniquable SourcePackageId # 
Instance details

Defined in PackageConfig

Uniquable Var # 
Instance details

Defined in Var

Methods

getUnique :: Var -> Unique #

Uniquable PatSyn # 
Instance details

Defined in PatSyn

Methods

getUnique :: PatSyn -> Unique #

Uniquable DataCon # 
Instance details

Defined in DataCon

Methods

getUnique :: DataCon -> Unique #

Uniquable ConLike # 
Instance details

Defined in ConLike

Methods

getUnique :: ConLike -> Unique #

Uniquable CoAxiomRule # 
Instance details

Defined in CoAxiom

Uniquable Class # 
Instance details

Defined in Class

Methods

getUnique :: Class -> Unique #

Uniquable LocalReg # 
Instance details

Defined in CmmExpr

Methods

getUnique :: LocalReg -> Unique #

Uniquable EvBindsVar # 
Instance details

Defined in TcEvidence

Uniquable name => Uniquable (AnnTarget name) # 
Instance details

Defined in Annotations

Methods

getUnique :: AnnTarget name -> Unique #

Uniquable (CoAxiom br) # 
Instance details

Defined in CoAxiom

Methods

getUnique :: CoAxiom br -> Unique #

Constructors, destructors and operations on Uniques

hasKey :: Uniquable a => a -> Unique -> Bool #

isValidKnownKeyUnique :: Unique -> Bool #

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

Deriving uniques

From TyCon name uniques

From DataCon name uniques