eqT package:ghc-lib-parser

Type equality on source types. Does not look through newtypes, PredTypes or type families, but it does look through type synonyms. This first checks that the kinds of the types are equal and then checks whether the types are equal, ignoring casts and coercions. (The kind check is a recursive call, but since all kinds have type Type, there is no need to check the types of kinds.) See also Note [Non-trivial definitional equality] in GHC.Core.TyCo.Rep.
Compare types with respect to a (presumably) non-empty RnEnv2.
Type equality on lists of types, looking through type synonyms but not newtypes.
Like pickyEqTypeVis, but returns a Bool for convenience
Check whether two TyConApps are the same; if the number of arguments are different, just checks the common prefix of arguments.
tcEqType implements typechecker equality It behaves just like eqType, but is implemented differently (for now)
Just like tcEqType, but will return True for types of different kinds as long as their non-coercion structure is identical.
Like splitForAllTyCoVars, but only splits ForAllTys with Required type variable binders. Furthermore, each returned tyvar is annotated with ().
Like tcSplitForAllTyVars, but only splits ForAllTys with Required type variable binders. All split tyvars are annotated with ().