pub fn relate_args_with_variances<I, R>(
    relation: &mut R,
    ty_def_id: <I as Interner>::DefId,
    variances: <I as Interner>::VariancesOf,
    a_arg: <I as Interner>::GenericArgs,
    b_arg: <I as Interner>::GenericArgs,
    fetch_ty_for_diag: bool,
) -> Result<<I as Interner>::GenericArgs, TypeError<I>>
where I: Interner, R: TypeRelation<I>,