fn equate<'cx, 'tcx>(
    infcx: &InferCtxt<'cx, 'tcx>,
    impl_env: ParamEnv<'tcx>,
    impl1_def_id: DefId,
    subject1: ImplSubject<'tcx>,
    subject2: ImplSubject<'tcx>,
    obligations: impl Iterator<Item = PredicateObligation<'tcx>>
) -> bool