Right package:ghc-lib-parser

Right Shift: >>
Strategies for ordering SrcSpans
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.
Like mkCoherenceRightCo, but with an MCoercion
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.