HERMIT.Core

Generic Data Type

data CoreProg

data CoreDef

type CoreTickish

Equality

Syntactic Equality

progSyntaxEq

bindSyntaxEq

defSyntaxEq

exprSyntaxEq

altSyntaxEq

typeSyntaxEq

coercionSyntaxEq

Alpha Equality

progAlphaEq

bindAlphaEq

defAlphaEq

exprAlphaEq

altAlphaEq

typeAlphaEq

coercionAlphaEq

Conversions to/from Core

defsToRecBind

defToIdExpr

progToBinds

bindsToProg

bindToVarExprs

Collecting variable bindings

progIds

bindVars

defId

altVars

Collecting free variables

freeVarsProg

freeVarsBind

freeVarsDef

freeVarsExpr

freeVarsAlt

freeVarsVar

localFreeVarsAlt

freeVarsType

freeVarsCoercion

localFreeVarsExpr

freeIdsExpr

localFreeIdsExpr

Utilities

isCoArg

exprKindOrType

exprTypeM

endoFunType

splitTyConAppM

splitFunTypeM

endoFunExprType

funExprArgResTypes

funExprsWithInverseTypes

appCount

mapAlts

Crumbs

data Crumb

showCrumbs

deprecatedLeftSibling

deprecatedRightSibling