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