Safe Haskell | None |
---|---|
Language | Haskell2010 |
Unique
Contents
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)
- 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
- mkPArrDataConUnique :: 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
- dataConRepNameUnique :: 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 of things that we can obtain a Unique
from
Minimal complete definition
Instances
uNIQUE_BITS :: Int #
Constructors, destructors and operations on Unique
s
pprUniqueAlways :: Unique -> SDoc #
mkUniqueGrimily :: Int -> Unique #
unpkUnique :: Unique -> (Char, Int) #
deriveUnique :: Unique -> Int -> Unique #
newTagUnique :: Unique -> Char -> Unique #
nonDetCmpUnique :: Unique -> Unique -> Ordering #
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
mkAlphaTyVarUnique :: Int -> Unique #
mkPrimOpIdUnique :: Int -> Unique #
mkPreludeMiscIdUnique :: Int -> Unique #
mkPreludeDataConUnique :: Arity -> Unique #
mkPreludeTyConUnique :: Int -> Unique #
mkPreludeClassUnique :: Int -> Unique #
mkPArrDataConUnique :: 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 #
Deriving uniques
From TyCon name uniques
tyConRepNameUnique :: Unique -> Unique #
From DataCon name uniques
dataConWorkerUnique :: Unique -> Unique #
dataConRepNameUnique :: Unique -> Unique #