# Semantics of nested \`impl Trait\` + HRTBs

**URL:** <https://internals.rust-lang.org/t/semantics-of-nested-impl-trait-hrtbs/16492>\
**Category:** language design\
**Created:** [April 18, 2022, 8:05am UTC](https://internals.rust-lang.org/t/semantics-of-nested-impl-trait-hrtbs/16492 "2022-04-18T08:05:17Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![aliemjay](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/aliemjay/32/9301_2.png) [@aliemjay](https://internals.rust-lang.org/u/aliemjay)\
**Post date:** [April 18, 2022, 2:13pm UTC](https://internals.rust-lang.org/t/semantics-of-nested-impl-trait-hrtbs/16492/5 "2022-04-18T14:13:49Z")

</div>

> [@oli-obk](#):
>
> I would think it should be the second one

I think we really need a decision here. For me it would be an inconsistent and and odd behavior.

For example, if `for<'a> Tr<'a, Assoc = impl Copy + 'a>` allows `Assoc` to be paramterized by `'a`, I would expect the same behavior from `for<'a> Tr<'a, Assoc = impl Copy>` as well! Adding a lifetime bound shouldn't change semantics in this regard.

---

_[View the full topic](https://internals.rust-lang.org/t/semantics-of-nested-impl-trait-hrtbs/16492)._
