pub fn relate_substs_with_variances<'tcx, R: TypeRelation<'tcx>>(
    relation: &mut R,
    ty_def_id: DefId,
    variances: &[Variance],
    a_subst: SubstsRef<'tcx>,
    b_subst: SubstsRef<'tcx>,
    fetch_ty_for_diag: bool
) -> RelateResult<'tcx, SubstsRef<'tcx>>