pub fn predicate_for_trait_ref<'tcx>(
    tcx: TyCtxt<'tcx>,
    cause: ObligationCause<'tcx>,
    param_env: ParamEnv<'tcx>,
    trait_ref: TraitRef<'tcx>,
    recursion_depth: usize
) -> PredicateObligation<'tcx>