# (Mega-pre-RFC) Reference specialization types (DSTs, proxy-references)

**URL:** <https://internals.rust-lang.org/t/mega-pre-rfc-reference-specialization-types-dsts-proxy-references/7740>\
**Category:** language design\
**Created:** [June 16, 2018, 6:06pm UTC](https://internals.rust-lang.org/t/mega-pre-rfc-reference-specialization-types-dsts-proxy-references/7740 "2018-06-16T18:06:38Z")\
**Posts on this page:** 1\
**Showing post:** 10

<div class="post-metadata">

**Author:** ![burakumin](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/burakumin/32/1838_2.png) [@burakumin](https://internals.rust-lang.org/u/burakumin)\
**Post date:** [June 17, 2018, 4:26pm UTC](https://internals.rust-lang.org/t/mega-pre-rfc-reference-specialization-types-dsts-proxy-references/7740/10 "2018-06-17T16:26:18Z")

</div>

> [@duanebyer](#):
>
> ```rust
> struct &'a T { … }
> struct &'a mut T { … }
> 
> ```
> 
> Aside: You might wonder why two redundant definitions are needed …

A minor syntactic remark: I believe it is quite unusual to introduce a generic lifetime without angle brackets (`<'a>`). As far as I understand, in your proposition `'a` would be any lifetime but `T` would be a specific concrete type. Correct?

Concerning another aspect I'm wondering if the redundancy between mutable and immutable reference specialization is not once again begging for generic mutability. There was a discussion about [this](https://internals.rust-lang.org/t/parameterisation-over-mutability/235) long ago (see also [there](https://www.reddit.com/r/rust/comments/2a721y/a_safe_way_to_reuse_the_same_code_for_immutable/)) but I'm not aware of any proposed RFC.

---

_[View the full topic](https://internals.rust-lang.org/t/mega-pre-rfc-reference-specialization-types-dsts-proxy-references/7740)._
