{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihtfaimsxcn5wodxspuq4xyeguks7ur7fsismxdhg6rn34c5tsbiu",
    "uri": "at://did:plc:ivbknywyskln22er3nkssdhl/app.bsky.feed.post/3mjxth7hcphq2"
  },
  "path": "/t/pre-rfc-t-trait-dyn-trait/21911#post_14",
  "publishedAt": "2026-04-21T01:13:38.000Z",
  "site": "https://internals.rust-lang.org",
  "textContent": "I suppose the generic parameter would need to be similar to a lifetime, used **solely** to constrain that two `dyn` trait objects use the same type, without any introspection as to what that type is. (Otherwise, different types could act differently, and you’d need monomorphization.) That being the case, as you say, using the same syntax as generic type parameters seems like a bad idea, since it can’t actually be a generic _type_ parameter. I think even the `: Trait` part seems less than ideal.\n\nMaybe introduce the parameter as `dyn T` or something, and have the corresponding trait objects be called `dyn<T> MyTrait`, `dyn<T> OtherTrait`? Is it important that only trait objects of the same type be unified?\n\nBikeshedding the name, regardless of syntax: I think “generic dyn parameter” sounds good.",
  "title": "Pre-RFC: &[T: Trait] -> &dyn [Trait]"
}