fn predicate_obligation<'tcx>(
    predicate: Predicate<'tcx>,
    param_env: ParamEnv<'tcx>,
    cause: ObligationCause<'tcx>
) -> PredicateObligation<'tcx>