Safe Haskell | None |
---|---|
Language | Haskell98 |
Unique
- data Unique
- class Uniquable a where
- hasKey :: Uniquable a => a -> Unique -> Bool
- pprUnique :: Unique -> SDoc
- mkUniqueGrimily :: Int -> Unique
- getKey :: Unique -> Int
- getKeyFastInt :: Unique -> FastInt
- mkUnique :: Char -> Int -> Unique
- unpkUnique :: Unique -> (Char, Int)
- incrUnique :: Unique -> Unique
- deriveUnique :: Unique -> Int -> Unique
- newTagUnique :: Unique -> Char -> Unique
- initTyVarUnique :: Unique
- mkAlphaTyVarUnique :: Int -> Unique
- mkPrimOpIdUnique :: Int -> Unique
- mkTupleTyConUnique :: TupleSort -> Int -> Unique
- mkTupleDataConUnique :: TupleSort -> Int -> Unique
- mkPreludeMiscIdUnique :: Int -> Unique
- mkPreludeDataConUnique :: Int -> Unique
- mkPreludeTyConUnique :: Int -> Unique
- mkPreludeClassUnique :: Int -> Unique
- mkPArrDataConUnique :: 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
Main data types
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
Class of things that we can obtain a Unique
from
Instances
Uniquable Int | |
Uniquable PackageId | |
Uniquable ModuleName | |
Uniquable Module | |
Uniquable OccName | |
Uniquable FastString | |
Uniquable Name | |
Uniquable Unique | |
Uniquable Reg | so we can put regs in UniqSets |
Uniquable RegClass | |
Uniquable Reg | |
Uniquable RealReg | |
Uniquable VirtualReg | |
Uniquable Var | |
Uniquable TyCon | |
Uniquable DataCon | |
Uniquable PatSyn | |
Uniquable ConLike | |
Uniquable CoAxiomRule | |
Uniquable Class | |
Uniquable BlockId | |
Uniquable LocalReg | |
Uniquable (CoAxiom br) | |
Uniquable name => Uniquable (AnnTarget name) |
Constructors, desctructors and operations on Unique
s
mkUniqueGrimily :: Int -> UniqueSource
getKeyFastInt :: Unique -> FastIntSource
unpkUnique :: Unique -> (Char, Int)Source
incrUnique :: Unique -> UniqueSource
deriveUnique :: Unique -> Int -> UniqueSource
newTagUnique :: Unique -> Char -> UniqueSource
Making built-in uniques
mkPrimOpIdUnique :: Int -> UniqueSource
mkTupleTyConUnique :: TupleSort -> Int -> UniqueSource
mkTupleDataConUnique :: TupleSort -> Int -> UniqueSource
mkRegSingleUnique :: Int -> UniqueSource
mkRegPairUnique :: Int -> UniqueSource
mkRegClassUnique :: Int -> UniqueSource
mkRegSubUnique :: Int -> UniqueSource
mkBuiltinUnique :: Int -> UniqueSource
mkPseudoUniqueD :: Int -> UniqueSource
mkPseudoUniqueE :: Int -> UniqueSource
mkPseudoUniqueH :: Int -> UniqueSource