ghc-9.0.2: The GHC API
Safe HaskellSafe-Inferred
LanguageHaskell2010

GHC.Types.Unique

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

Instances details
Show Unique # 
Instance details

Defined in GHC.Types.Unique

Uniquable Unique # 
Instance details

Defined in GHC.Types.Unique

Methods

getUnique :: Unique -> Unique #

Outputable Unique # 
Instance details

Defined in GHC.Types.Unique

Methods

ppr :: Unique -> SDoc #

pprPrec :: Rational -> Unique -> SDoc #

Eq Unique # 
Instance details

Defined in GHC.Types.Unique

Methods

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

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

class Uniquable a where #

Class of things that we can obtain a Unique from

Methods

getUnique :: a -> Unique #

Instances

Instances details
Uniquable Label # 
Instance details

Defined in GHC.Cmm.Dataflow.Label

Methods

getUnique :: Label -> Unique #

Uniquable LocalReg # 
Instance details

Defined in GHC.Cmm.Expr

Methods

getUnique :: LocalReg -> Unique #

Uniquable Reg #

so we can put regs in UniqSets

Instance details

Defined in GHC.CmmToAsm.Reg.Graph.Base

Methods

getUnique :: Reg -> Unique #

Uniquable Class # 
Instance details

Defined in GHC.Core.Class

Methods

getUnique :: Class -> Unique #

Uniquable CoAxiomRule # 
Instance details

Defined in GHC.Core.Coercion.Axiom

Uniquable ConLike # 
Instance details

Defined in GHC.Core.ConLike

Methods

getUnique :: ConLike -> Unique #

Uniquable DataCon # 
Instance details

Defined in GHC.Core.DataCon

Methods

getUnique :: DataCon -> Unique #

Uniquable PatSyn # 
Instance details

Defined in GHC.Core.PatSyn

Methods

getUnique :: PatSyn -> Unique #

Uniquable TyCon # 
Instance details

Defined in GHC.Core.TyCon

Methods

getUnique :: TyCon -> Unique #

Uniquable FastString # 
Instance details

Defined in GHC.Types.Unique

Uniquable RealReg # 
Instance details

Defined in GHC.Platform.Reg

Methods

getUnique :: RealReg -> Unique #

Uniquable Reg # 
Instance details

Defined in GHC.Platform.Reg

Methods

getUnique :: Reg -> Unique #

Uniquable VirtualReg # 
Instance details

Defined in GHC.Platform.Reg

Uniquable RegClass # 
Instance details

Defined in GHC.Platform.Reg.Class

Methods

getUnique :: RegClass -> Unique #

Uniquable EvBindsVar # 
Instance details

Defined in GHC.Tc.Types.Evidence

Uniquable Name # 
Instance details

Defined in GHC.Types.Name

Methods

getUnique :: Name -> Unique #

Uniquable OccName # 
Instance details

Defined in GHC.Types.Name.Occurrence

Methods

getUnique :: OccName -> Unique #

Uniquable Unique # 
Instance details

Defined in GHC.Types.Unique

Methods

getUnique :: Unique -> Unique #

Uniquable Var # 
Instance details

Defined in GHC.Types.Var

Methods

getUnique :: Var -> Unique #

Uniquable PackageId # 
Instance details

Defined in GHC.Unit.Info

Uniquable PackageName # 
Instance details

Defined in GHC.Unit.Info

Uniquable ModuleName # 
Instance details

Defined in GHC.Unit.Module.Name

Uniquable Module # 
Instance details

Defined in GHC.Unit.Types

Methods

getUnique :: Module -> Unique #

Uniquable Unit # 
Instance details

Defined in GHC.Unit.Types

Methods

getUnique :: Unit -> Unique #

Uniquable UnitId # 
Instance details

Defined in GHC.Unit.Types

Methods

getUnique :: UnitId -> Unique #

Uniquable Int # 
Instance details

Defined in GHC.Types.Unique

Methods

getUnique :: Int -> Unique #

Uniquable (CoAxiom br) # 
Instance details

Defined in GHC.Core.Coercion.Axiom

Methods

getUnique :: CoAxiom br -> Unique #

Uniquable unit => Uniquable (Indefinite unit) # 
Instance details

Defined in GHC.Unit.Types

Methods

getUnique :: Indefinite unit -> 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 GHC.Iface.Binary for details.

Making built-in uniques

Deriving uniques

From TyCon name uniques

From DataCon name uniques

Local uniques

These are exposed exclusively for use by uniqAway, which has rather peculiar needs. See Note [Local uniques].