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

nextRole

mkForAllTy

mkForAllTys

splitForAllTy_maybe

splitForAllTys

mkPiKinds

mkPiType

mkPiTypes

applyTy

applyTys

applyTysD

applyTysX

dropForAlls

mkNumLitTy

isNumLitTy

mkStrLitTy

isStrLitTy

coAxNthLHS

newTyConInstRhs

mkFamilyTyConApp

isDictLikeTy

mkEqPred

mkCoerciblePred

mkPrimEqPred

mkReprPrimEqPred

mkClassPred

isClassPred

isEqPred

isIPPred

isIPPred_maybe

isIPTyCon

isIPClass

data PredTree

data EqRel

eqRelRole

classifyPredType

getClassPredTys

getClassPredTys_maybe

getEqPredTys

getEqPredTys_maybe

getEqPredRole

predTypeEqRel

Common type constructors

funTyCon

Predicates on types

isTypeVar

isKindVar

allDistinctTyVars

isForAllTy

isTyVarTy

isFunTy

isDictTy

isPredTy

isVoidTy

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

liftedTypeKind

unliftedTypeKind

openTypeKind

constraintKind

superKind

Common Kind type constructors

liftedTypeKindTyCon

openTypeKindTyCon

unliftedTypeKindTyCon

constraintKindTyCon

anyKindTyCon

Type free variables

tyVarsOfType

tyVarsOfTypes

closeOverKinds

expandTypeSynonyms

typeSize

varSetElemsKvsFirst

Type comparison

eqType

eqTypeX

eqTypes

cmpType

cmpTypes

eqPred

eqPredX

cmpPred

eqKind

eqTyVarBndrs

Forcing evaluation of types

seqType

seqTypes

Other views onto Types

coreView

tcView

type UnaryType

data RepType

flattenRepType

repType

tyConsOfType

Type representation for the code generator

typePrimRep

typeRepArity

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

pprTvBndr

pprTvBndrs

pprForAll

pprUserForAll

pprSigmaType

pprTheta

pprThetaArrowTy

pprClassPred

pprKind

pprParendKind

pprSourceTyCon

data TyPrec

maybeParen

pprSigmaTypeExtraCts

Tidying type related things up for printing

tidyType

tidyTypes

tidyOpenType

tidyOpenTypes

tidyOpenKind

tidyTyVarBndr

tidyTyVarBndrs

tidyFreeTyVars

tidyOpenTyVar

tidyOpenTyVars

tidyTyVarOcc

tidyTopType

tidyKind