, Just (ty_fun1, ty_arg1) <- splitAppTy_maybe ty1
, Just (ty_fun2, ty_arg2) <- splitAppTy_maybe ty2
= ((ty_fun1, ty_fun2),(ty_arg1, ty_arg2))
+splitCoercionKindOf co
+ = pprPanic "Coercion.splitCoercionKindOf"
+ (ppr co $$ ppr (coercionKindPredTy co))
instCoercionTyCon
= mkCoercionTyCon instCoercionTyConName 2 instCoercionKind
mkForAllTyCoI _ IdCo = IdCo
mkForAllTyCoI tv (ACo co) = ACo $ ForAllTy tv co
+fromACo :: CoercionI -> Coercion
fromACo (ACo co) = co
-
mkClassPPredCoI :: Class -> [Type] -> [CoercionI] -> CoercionI
-- mkClassPPredCoI cls tys cois = coi
-- coi : PredTy (cls tys) ~ predTy (cls (tys `cast` cois))