ghc-9.10.1: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Types.Unique

Synopsis

Main data types

data Unique Source #

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
Uniquable Unique Source # 
Instance details

Defined in GHC.Types.Unique

Outputable Unique Source # 
Instance details

Defined in GHC.Types.Unique

Methods

ppr :: Unique -> SDoc Source #

Show Unique Source # 
Instance details

Defined in GHC.Types.Unique

Eq Unique Source # 
Instance details

Defined in GHC.Types.Unique

Methods

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

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

class Uniquable a where Source #

Class of things that we can obtain a Unique from

Methods

getUnique :: a -> Unique Source #

Instances

Instances details
Uniquable Label Source # 
Instance details

Defined in GHC.Cmm.Dataflow.Label

Uniquable LocalReg Source # 
Instance details

Defined in GHC.Cmm.Reg

Uniquable Reg Source #

so we can put regs in UniqSets

Instance details

Defined in GHC.CmmToAsm.Reg.Graph.Base

Methods

getUnique :: Reg -> Unique Source #

Uniquable SymName Source # 
Instance details

Defined in GHC.CmmToAsm.Wasm.Types

Uniquable Class Source # 
Instance details

Defined in GHC.Core.Class

Uniquable CoAxiomRule Source # 
Instance details

Defined in GHC.Core.Coercion.Axiom

Uniquable ConLike Source # 
Instance details

Defined in GHC.Core.ConLike

Uniquable DataCon Source # 
Instance details

Defined in GHC.Core.DataCon

Uniquable PatSyn Source # 
Instance details

Defined in GHC.Core.PatSyn

Uniquable CoercionHole Source # 
Instance details

Defined in GHC.Core.TyCo.Rep

Uniquable TyCon Source # 
Instance details

Defined in GHC.Core.TyCon

Uniquable FastString Source # 
Instance details

Defined in GHC.Types.Unique

Uniquable Ident Source # 
Instance details

Defined in GHC.JS.Ident

Uniquable RealReg Source # 
Instance details

Defined in GHC.Platform.Reg

Uniquable Reg Source # 
Instance details

Defined in GHC.Platform.Reg

Methods

getUnique :: Reg -> Unique Source #

Uniquable VirtualReg Source # 
Instance details

Defined in GHC.Platform.Reg

Uniquable RegClass Source # 
Instance details

Defined in GHC.Platform.Reg.Class

Uniquable EvBindsVar Source # 
Instance details

Defined in GHC.Tc.Types.Evidence

Uniquable SkolemInfo Source # 
Instance details

Defined in GHC.Tc.Types.Origin

Uniquable ConLikeName Source # 
Instance details

Defined in GHC.Types.GREInfo

Uniquable Name Source # 
Instance details

Defined in GHC.Types.Name

Uniquable NameSpace Source # 
Instance details

Defined in GHC.Types.Name.Occurrence

Uniquable Unique Source # 
Instance details

Defined in GHC.Types.Unique

Uniquable Var Source # 
Instance details

Defined in GHC.Types.Var

Methods

getUnique :: Var -> Unique Source #

Uniquable PackageId Source # 
Instance details

Defined in GHC.Unit.Info

Uniquable PackageName Source # 
Instance details

Defined in GHC.Unit.Info

Uniquable WarningCategory Source # 
Instance details

Defined in GHC.Unit.Module.Warnings

Uniquable Module Source # 
Instance details

Defined in GHC.Unit.Types

Uniquable UnitId Source # 
Instance details

Defined in GHC.Unit.Types

Uniquable FieldLabelString Source # 
Instance details

Defined in GHC.Types.FieldLabel

Uniquable ModuleName Source # 
Instance details

Defined in GHC.Types.Unique

Uniquable Int Source # 
Instance details

Defined in GHC.Types.Unique

Methods

getUnique :: Int -> Unique Source #

Uniquable (CoAxiom br) Source # 
Instance details

Defined in GHC.Core.Coercion.Axiom

Methods

getUnique :: CoAxiom br -> Unique Source #

Uniquable unit => Uniquable (Definite unit) Source # 
Instance details

Defined in GHC.Unit.Types

Methods

getUnique :: Definite unit -> Unique Source #

IsUnitId u => Uniquable (GenUnit u) Source # 
Instance details

Defined in GHC.Unit.Types

Constructors, destructors and operations on Uniques

mkTag :: Char -> Word64 Source #

Put the character in the highest bits of the Word64. This may truncate the character to 8. This function is used in mkSplitUniqSupply so that it can precompute and share the tag part of the uniques it generates.

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 GHC.Iface.Binary for details.

Local uniques

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