Safe Haskell | None |
---|---|
Language | Haskell98 |
- 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 Uniquable a where Source
Class of things that we can obtain a Unique
from
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 -> Unique Source
getKeyFastInt :: Unique -> FastInt Source
unpkUnique :: Unique -> (Char, Int) Source
incrUnique :: Unique -> Unique Source
deriveUnique :: Unique -> Int -> Unique Source
newTagUnique :: Unique -> Char -> Unique Source
Making built-in uniques
mkAlphaTyVarUnique :: Int -> Unique Source
mkPrimOpIdUnique :: Int -> Unique Source
mkTupleTyConUnique :: TupleSort -> Int -> Unique Source
mkTupleDataConUnique :: TupleSort -> Int -> Unique Source
mkPreludeMiscIdUnique :: Int -> Unique Source
mkPreludeTyConUnique :: Int -> Unique Source
mkPreludeClassUnique :: Int -> Unique Source
mkPArrDataConUnique :: Int -> Unique Source
mkVarOccUnique :: FastString -> Unique Source
mkTvOccUnique :: FastString -> Unique Source
mkTcOccUnique :: FastString -> Unique Source
mkRegSingleUnique :: Int -> Unique Source
mkRegPairUnique :: Int -> Unique Source
mkRegClassUnique :: Int -> Unique Source
mkRegSubUnique :: Int -> Unique Source
mkCostCentreUnique :: Int -> Unique Source
mkBuiltinUnique :: Int -> Unique Source
mkPseudoUniqueD :: Int -> Unique Source
mkPseudoUniqueE :: Int -> Unique Source
mkPseudoUniqueH :: Int -> Unique Source