pub fn elaborate_obligations(
    tcx: TyCtxt<'tcx>,
    obligations: Vec<Obligation<'tcx, Predicate<'tcx>>, Global>
) -> Elaborator<'tcx>