Type

# Main data types representing Types

data TyThing

data Type

data PredType

type ThetaType

## 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

tyConAppArgs

splitTyConApp_maybe

splitTyConApp

mkForAllTy

mkForAllTys

splitForAllTy_maybe

splitForAllTys

applyTy

applyTys

applyTysD

isForAllTy

dropForAlls

newTyConInstRhs

carefullySplitNewType_maybe

tyFamInsts

predFamInsts

mkPredTy

mkPredTys

mkFamilyTyConApp

isEqPred

coVarPred

## Common type constructors

funTyCon

## Predicates on types

isTyVarTy

isFunTy

isDictTy

isUnLiftedType

isUnboxedTupleType

isAlgType

isClosedAlgType

isPrimitiveType

isStrictType

isStrictPred

# Main data types representing Kinds

type Kind

type SimpleKind

type KindVar

## Common Kinds and SuperKinds

liftedTypeKind

unliftedTypeKind

openTypeKind

argTypeKind

ubxTupleKind

tySuperKind

coSuperKind

## Common Kind type constructors

liftedTypeKindTyCon

openTypeKindTyCon

unliftedTypeKindTyCon

argTypeKindTyCon

ubxTupleKindTyCon

# Type free variables

tyVarsOfType

tyVarsOfTypes

tyVarsOfPred

tyVarsOfTheta

expandTypeSynonyms

# Type comparison

coreEqType

coreEqType2

tcEqType

tcEqTypes

tcCmpType

tcCmpTypes

tcEqPred

tcEqPredX

tcCmpPred

tcEqTypeX

tcPartOfType

tcPartOfPred

# Forcing evaluation of types

seqType

seqTypes

# Other views onto Types

coreView

tcView

kindView

repType

# Type representation for the code generator

data PrimRep

typePrimRep

predTypeRep

# 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

substTy

substTys

substTyWith

substTysWith

substTheta

substPred

substTyVar

substTyVars

substTyVarBndr

deShadowTy

lookupTyVar

# Pretty-printing

pprType

pprParendType

pprTypeApp

pprTyThingCategory

pprTyThing

pprForAll

pprPred

pprEqPred

pprTheta

pprThetaArrow

pprClassPred

pprKind

pprParendKind

pprSourceTyCon