Information about a type family equation, used for validity checking
of closed type family equations and associated type family default equations.
This type exists to delay validity-checking after typechecking type declaration
groups, to avoid cyclic evaluation inside the typechecking knot.
See Note [Type-checking default assoc decls] in GHC.Tc.TyCl.
Constructors
NoVIUsed for equations which don't need any validity checking,
for example equations imported from another module.
VIInformation necessary for validity checking of a type family equation.
vi_loc :: SrcSpanvi_qtvs :: [TcTyVar]LHS quantified type variables
vi_non_user_tvs :: TyVarSetnon-user-written type variables (for error message reporting)
Example: with -XPolyKinds, typechecking type instance forall a. F = ()
introduces the kind variable k for the kind of a. See #23734.
vi_pats :: [Type]vi_rhs :: TypeRHS of the equation
NB: for associated type family default declarations, this is the RHS
*before* applying the substitution from
Note [Type-checking default assoc decls] in GHC.Tc.TyCl.