hasFixedRuntimeRep :: HasDebugCallStack=> FixedRuntimeRepContextContext to be reported to the user if the type ends up not having a fixed
RuntimeRep.-> TcTypeThe type to check (we only look at its kind).
-> TcM (TcCoercionN, TcTypeFRR)(co, ty')wherety' :: ki',kiis concrete, andco :: ty ~# ty'. That is,ty'has a syntactically fixed RuntimeRep in the sense of Note [Fixed RuntimeRep].
Given a type ty :: ki, this function ensures that ty
has a fixed RuntimeRep, by emitting a new equality constraint
ki ~ concrete_tv for a concrete metavariable concrete_tv.
Returns a coercion co :: ty ~# concrete_ty as evidence.
If ty obviously has a fixed RuntimeRep, e.g ki = IntRep,
then this function immediately returns MRefl,
without emitting any constraints.