Right package:ghc-lib-parser
Given ty :: k1, co :: k1 ~ k2, co2:: ty' ~r
ty, produces @co' :: ty' ~r (ty |> co) It is not only a
utility function, but it saves allocation when co is a GRefl coercion.
Given ty :: k1, co :: k1 ~ k2, produces co' ::
ty ~r (ty |> co)
Apply a cast to the result of a
Reduction, using an
MCoercionN.
Given a
Reduction ty1 ~co1~> (ty2 :: k2) and a kind
coercion
mco with LHS kind
k2, produce a new
Reduction ty1 ~co2~> ( ty2 |> mco ) of the given
Role (which must match the role of the coercion stored in the
Reduction argument).
Apply a cast to the result of a
Reduction.
Given a
Reduction ty1 ~co1~> (ty2 :: k2) and a kind
coercion
kco with LHS kind
k2, produce a new
Reduction ty1 ~co2~> ( ty2 |> kco ) of the given
Role (which must match the role of the coercion stored in the
Reduction argument).
Create a
Reduction from a kind cast, in which the casted type
is the rewritten type.
Given
ty :: k1,
mco :: k1 ~ k2, produces the
Reduction ty ~res_co~> (ty |> mco) at the given
Role.