A Reduction is the result of an operation that rewrites a type ty_in.
The Reduction includes the rewritten type ty_out and a Coercion co
such that co :: ty_in ~ ty_out, where the role of the coercion is determined
by the context. That is, the LHS type of the coercion is the original type
ty_in, while its RHS type is the rewritten type ty_out.
A Reduction is always homogeneous, unless it is wrapped inside a HetReduction, which separately stores the kind coercion.
See Note [The Reduction type].
Constructors
Instances1Outputable
Outputable ReductionDefined in ghc-9.10.3 · GHC.Core.Reduction