Type

Main data types representing Types

data TyThing

data Type

data ArgFlag

type KindOrType

type PredType

type ThetaType

data Var

type TyVar

isTyVar

type TyCoVar

data TyBinder

type TyVarBinder

Constructing and deconstructing types

mkTyVarTy

mkTyVarTys

getTyVar

getTyVar_maybe

repGetTyVar_maybe

getCastedTyVar_maybe

tyVarKind

mkAppTy

mkAppTys

splitAppTy

splitAppTys

repSplitAppTys

splitAppTy_maybe

repSplitAppTy_maybe

tcRepSplitAppTy_maybe

mkFunTy

mkFunTys

splitFunTy

splitFunTy_maybe

splitFunTys

funResultTy

funArgTy

mkTyConApp

mkTyConTy

tyConAppTyCon_maybe

tyConAppTyConPicky_maybe

tyConAppArgs_maybe

tyConAppTyCon

tyConAppArgs

splitTyConApp_maybe

splitTyConApp

tyConAppArgN

nextRole

tcRepSplitTyConApp_maybe

tcSplitTyConApp_maybe

splitListTyConApp_maybe

repSplitTyConApp_maybe

mkForAllTy

mkForAllTys

mkInvForAllTys

mkSpecForAllTys

mkVisForAllTys

mkInvForAllTy

splitForAllTys

splitForAllTyVarBndrs

splitForAllTy_maybe

splitForAllTy

splitPiTy_maybe

splitPiTy

splitPiTys

mkPiTy

mkPiTys

mkTyConBindersPreferAnon

mkLamType

mkLamTypes

piResultTy

piResultTys

applyTysX

dropForAlls

mkNumLitTy

isNumLitTy

mkStrLitTy

isStrLitTy

getRuntimeRep_maybe

getRuntimeRepFromKind_maybe

mkCastTy

mkCoercionTy

splitCastTy_maybe

userTypeError_maybe

pprUserTypeErrorTy

coAxNthLHS

stripCoercionTy

splitCoercionType_maybe

splitPiTysInvisible

filterOutInvisibleTypes

filterOutInvisibleTyVars

partitionInvisibles

synTyConResKind

modifyJoinResTy

setJoinResTy

data TyCoMapper env m

mapType

mapCoercion

newTyConInstRhs

mkFamilyTyConApp

isDictLikeTy

mkPrimEqPred

mkReprPrimEqPred

mkPrimEqPredRole

equalityTyCon

mkHeteroPrimEqPred

mkHeteroReprPrimEqPred

mkClassPred

isClassPred

isEqPred

isNomEqPred

isIPPred

isIPPred_maybe

isIPTyCon

isIPClass

isCTupleClass

data PredTree

data EqRel

eqRelRole

classifyPredType

getClassPredTys

getClassPredTys_maybe

getEqPredTys

getEqPredTys_maybe

getEqPredRole

predTypeEqRel

Binders

sameVis

mkTyVarBinder

mkTyVarBinders

mkAnonBinder

isAnonTyBinder

isNamedTyBinder

binderVar

binderVars

binderKind

binderArgFlag

tyBinderType

binderRelevantType_maybe

caseBinder

isVisibleArgFlag

isInvisibleArgFlag

isVisibleBinder

isInvisibleBinder

tyConBindersTyBinders

mkTyBinderTyConBinder

Common type constructors

funTyCon

Predicates on types

isTyVarTy

isFunTy

isDictTy

isPredTy

isCoercionTy

isCoercionTy_maybe

isCoercionType

isForAllTy

isPiTy

isTauTy

isFamFreeTy

isValidJoinPointType

isLiftedType_maybe

isUnliftedType

isUnboxedTupleType

isUnboxedSumType

isAlgType

isClosedAlgType

isDataFamilyAppType

isPrimitiveType

isStrictType

isRuntimeRepTy

isRuntimeRepVar

isRuntimeRepKindedTy

dropRuntimeRepArgs

getRuntimeRep

getRuntimeRepFromKind

Main data types representing Kinds

type Kind

Finding the kind of a type

typeKind

isTypeLevPoly

resultIsLevPoly

Common Kind

liftedTypeKind

Type free variables

tyCoFVsOfType

tyCoFVsBndr

tyCoVarsOfType

tyCoVarsOfTypes

tyCoVarsOfTypeDSet

coVarsOfType

coVarsOfTypes

closeOverKinds

closeOverKindsList

noFreeVarsOfType

splitVisVarsOfType

splitVisVarsOfTypes

expandTypeSynonyms

typeSize

Well-scoped lists of variables

dVarSetElemsWellScoped

toposortTyVars

tyCoVarsOfTypeWellScoped

tyCoVarsOfTypesWellScoped

Type comparison

eqType

eqTypeX

eqTypes

nonDetCmpType

nonDetCmpTypes

nonDetCmpTypeX

nonDetCmpTypesX

nonDetCmpTc

eqVarBndrs

Forcing evaluation of types

seqType

seqTypes

Other views onto Types

coreView

tcView

tyConsOfType

Main type substitution data types

type TvSubstEnv

data TCvSubst

Manipulating type substitutions

emptyTvSubstEnv

emptyTCvSubst

mkEmptyTCvSubst

mkTCvSubst

zipTvSubst

mkTvSubstPrs

notElemTCvSubst

getTvSubstEnv

setTvSubstEnv

zapTCvSubst

getTCvInScope

getTCvSubstRangeFVs

extendTCvInScope

extendTCvInScopeList

extendTCvInScopeSet

extendTCvSubst

extendCvSubst

extendTvSubst

extendTvSubstBinder

extendTvSubstList

extendTvSubstAndInScope

extendTvSubstWithClone

isInScope

composeTCvSubstEnv

composeTCvSubst

zipTyEnv

zipCoEnv

isEmptyTCvSubst

unionTCvSubst

Performing substitution on types and kinds

substTy

substTys

substTyWith

substTysWith

substTheta

substTyAddInScope

substTyUnchecked

substTysUnchecked

substThetaUnchecked

substTyWithUnchecked

substCoUnchecked

substCoWithUnchecked

substTyVarBndr

substTyVar

substTyVars

cloneTyVarBndr

cloneTyVarBndrs

lookupTyVar

Pretty-printing

pprType

pprParendType

pprTypeApp

pprTyThingCategory

pprShortTyThing

pprTvBndr

pprTvBndrs

pprForAll

pprUserForAll

pprSigmaType

ppSuggestExplicitKinds

pprTheta

pprThetaArrowTy

pprClassPred

pprKind

pprParendKind

pprSourceTyCon

data TyPrec

maybeParen

pprTyVar

pprTyVars

pprPrefixApp

pprArrowChain

Tidying type related things up for printing

tidyType

tidyTypes

tidyOpenType

tidyOpenTypes

tidyOpenKind

tidyTyCoVarBndr

tidyTyCoVarBndrs

tidyFreeTyCoVars

tidyOpenTyCoVar

tidyOpenTyCoVars

tidyTyVarOcc

tidyTopType

tidyKind

tidyTyVarBinder

tidyTyVarBinders