mkCoerciblePred :: Type -> Type -> PredType
mkCoerciblePred ty1 ty2
  = WARN( not (k `eqKind` typeKind ty2), ppr ty1 $$ ppr ty2 $$ ppr k $$ ppr (typeKind ty2) )
    TyConApp coercibleTyCon [k, ty1, ty2]
  where
    k = typeKind ty1
mkCoerciblePred :: Type -> Type -> PredType
mkCoerciblePred ty1 ty2
  = WARN( not (k `eqKind` typeKind ty2), ppr ty1 $$ ppr ty2 $$ ppr k $$ ppr (typeKind ty2) )
    TyConApp coercibleTyCon [k, ty1, ty2]
  where
    k = typeKind ty1
mkCoerciblePred ty1 ty2
  = WARN( not (k `eqKind` typeKind ty2), ppr ty1 $$ ppr ty2 $$ ppr k $$ ppr (typeKind ty2) )
    TyConApp coercibleTyCon [k, ty1, ty2]
  where
    k = typeKind ty1