Type

Main data types representing Types

data TyThing

data Type

type KindOrType

type PredType

type ThetaType

data Var

type TyVar

isTyVar

Constructing and deconstructing types

mkTyVarTy

mkTyVarTys

getTyVar

getTyVar_maybe

mkAppTy

mkAppTys

splitAppTy

splitAppTys

splitAppTy_maybe

repSplitAppTy_maybe

mkFunTy

mkFunTys

splitFunTy

splitFunTy_maybe

splitFunTys

splitFunTysN

funResultTy

funArgTy

zipFunTys

mkTyConApp

mkTyConTy

tyConAppTyCon_maybe

tyConAppArgs_maybe

tyConAppTyCon

tyConAppArgs

splitTyConApp_maybe

splitTyConApp

tyConAppArgN

mkForAllTy

mkForAllTys

splitForAllTy_maybe

splitForAllTys

mkPiKinds

mkPiType

mkPiTypes

applyTy

applyTys

applyTysD

isForAllTy

dropForAlls

newTyConInstRhs

carefullySplitNewType_maybe

mkFamilyTyConApp

isDictLikeTy

mkEqPred

mkClassPred

mkIPPred

noParenPred

isClassPred

isIPPred

isEqPred

mkPrimEqType

data PredTree

predTreePredType

classifyPredType

getClassPredTys

getClassPredTys_maybe

getEqPredTys

getEqPredTys_maybe

getIPPredTy_maybe

Common type constructors

funTyCon

Predicates on types

isTyVarTy

isFunTy

isDictTy

isPredTy

isKindTy

isUnLiftedType

isUnboxedTupleType

isAlgType

isClosedAlgType

isPrimitiveType

isStrictType

Main data types representing Kinds

type Kind

type SimpleKind

type MetaKindVar

Finding the kind of a type

typeKind

Common Kinds and SuperKinds

anyKind

constraintKind

ubxTupleKind

argTypeKind

openTypeKind

unliftedTypeKind

liftedTypeKind

tySuperKind

Common Kind type constructors

constraintKindTyCon

argTypeKindTyCon

ubxTupleKindTyCon

unliftedTypeKindTyCon

openTypeKindTyCon

liftedTypeKindTyCon

anyKindTyCon

Type free variables

tyVarsOfType

tyVarsOfTypes

expandTypeSynonyms

typeSize

varSetElemsKvsFirst

sortQuantVars

Type comparison

eqType

eqTypeX

eqTypes

cmpType

cmpTypes

eqPred

eqPredX

cmpPred

eqKind

Forcing evaluation of types

seqType

seqTypes

Other views onto Types

coreView

tcView

repType

deepRepType

Type representation for the code generator

data PrimRep

typePrimRep

Main type substitution data types

type TvSubstEnv

data TvSubst

Manipulating type substitutions

emptyTvSubstEnv

emptyTvSubst

mkTvSubst

mkOpenTvSubst

zipOpenTvSubst

zipTopTvSubst

mkTopTvSubst

notElemTvSubst

getTvSubstEnv

setTvSubstEnv

zapTvSubstEnv

getTvInScope

extendTvInScope

extendTvInScopeList

extendTvSubst

extendTvSubstList

isInScope

composeTvSubst

zipTyEnv

isEmptyTvSubst

unionTvSubst

Performing substitution on types and kinds

substTy

substTys

substTyWith

substTysWith

substTheta

substTyVar

substTyVars

substTyVarBndr

cloneTyVarBndr

deShadowTy

lookupTyVar

substKiWith

substKisWith

Pretty-printing

pprType

pprParendType

pprTypeApp

pprTyThingCategory

pprTyThing

pprForAll

pprEqPred

pprTheta

pprThetaArrowTy

pprClassPred

pprKind

pprParendKind

pprSourceTyCon