ghc-8.4.1.20180329: The GHC API

Safe HaskellNone
LanguageHaskell2010

Unique

Contents

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

Defined in Unique

Methods

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

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

Show Unique Source # 
Instance details

Defined in Unique

Outputable Unique Source # 
Instance details

Defined in Unique

Uniquable Unique Source # 
Instance details

Defined in Unique

class Uniquable a where Source #

Class of things that we can obtain a Unique from

Minimal complete definition

getUnique

Methods

getUnique :: a -> Unique Source #

Instances
Uniquable Int Source # 
Instance details

Defined in Unique

Methods

getUnique :: Int -> Unique Source #

Uniquable Name Source # 
Instance details

Defined in Name

Uniquable OccName Source # 
Instance details

Defined in OccName

Uniquable TyCon Source # 
Instance details

Defined in TyCon

Uniquable FastString Source # 
Instance details

Defined in Unique

Uniquable ComponentId Source # 
Instance details

Defined in Module

Uniquable InstalledUnitId Source # 
Instance details

Defined in Module

Uniquable UnitId Source # 
Instance details

Defined in Module

Uniquable ModuleName Source # 
Instance details

Defined in Module

Uniquable Module Source # 
Instance details

Defined in Module

Uniquable Unique Source # 
Instance details

Defined in Unique

Uniquable RegClass Source # 
Instance details

Defined in RegClass

Uniquable Reg Source #

so we can put regs in UniqSets

Instance details

Defined in RegAlloc.Graph.ArchBase

Methods

getUnique :: Reg -> Unique Source #

Uniquable Reg Source # 
Instance details

Defined in Reg

Methods

getUnique :: Reg -> Unique Source #

Uniquable RealReg Source # 
Instance details

Defined in Reg

Uniquable VirtualReg Source # 
Instance details

Defined in Reg

Uniquable Label Source # 
Instance details

Defined in Hoopl.Label

Uniquable PackageName Source # 
Instance details

Defined in PackageConfig

Uniquable SourcePackageId Source # 
Instance details

Defined in PackageConfig

Uniquable Var Source # 
Instance details

Defined in Var

Methods

getUnique :: Var -> Unique Source #

Uniquable PatSyn Source # 
Instance details

Defined in PatSyn

Uniquable DataCon Source # 
Instance details

Defined in DataCon

Uniquable ConLike Source # 
Instance details

Defined in ConLike

Uniquable CoAxiomRule Source # 
Instance details

Defined in CoAxiom

Uniquable Class Source # 
Instance details

Defined in Class

Uniquable LocalReg Source # 
Instance details

Defined in CmmExpr

Uniquable EvBindsVar Source # 
Instance details

Defined in TcEvidence

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

Defined in Annotations

Methods

getUnique :: AnnTarget name -> Unique Source #

Uniquable (CoAxiom br) Source # 
Instance details

Defined in CoAxiom

Methods

getUnique :: CoAxiom br -> Unique Source #

Constructors, destructors and operations on Uniques

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

Deriving uniques

From TyCon name uniques

From DataCon name uniques