# RE: Long term RFC: Associated traits / Trait generics / ConstraintKinds

**URL:** <https://internals.rust-lang.org/t/re-long-term-rfc-associated-traits-trait-generics-constraintkinds/22457>\
**Category:** language design\
**Created:** [February 23, 2025, 8:56pm UTC](https://internals.rust-lang.org/t/re-long-term-rfc-associated-traits-trait-generics-constraintkinds/22457 "2025-02-23T20:56:19Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![AndreiCravtov](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/andreicravtov/32/13003_2.png) [@AndreiCravtov](https://internals.rust-lang.org/u/AndreiCravtov)\
**Post date:** [February 23, 2025, 8:56pm UTC](https://internals.rust-lang.org/t/re-long-term-rfc-associated-traits-trait-generics-constraintkinds/22457/1 "2025-02-23T20:56:19Z")

</div>

The topic [Long term RFC: Associated traits / Trait generics / ConstraintKinds](https://internals.rust-lang.org/t/long-term-rfc-associated-traits-trait-generics-constraintkinds/7242/1) was posted in 2018 and now closed, and there is a corresponding [issue](https://github.com/rust-lang/rfcs/issues/2190) about it too, just wanna re-bring-it-up again.

But to boil it down, its a proposal to treat traits as first-class types of kind `Type -> Constraint` so that you can stick them into where you would usually stick types, e.g.

```rust
trait Foo {
  trait Bar;
  fn baz<T: Self::Bar>(t: T);
}
fn foo_bar_baz<trait M, T: M, F: Foo<Bar=M>>(t: T) { F::baz(t) }

```

Outside of [this trait-alias RFC](https://rust-lang.github.io/rfcs/1733-trait-alias.html#constraintkinds) I haven't seen the idea of "[ConstraintKinds](https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/constraint_kind.html) for Rust" being mentioned in any "official" Rust sources, so just wanted bring it up again.

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/system/32/14092_2.png) [@system](https://internals.rust-lang.org/u/system)\
**Post date:** [August 17, 2026, 8:57pm UTC](https://internals.rust-lang.org/t/re-long-term-rfc-associated-traits-trait-generics-constraintkinds/22457/2 "2026-08-17T20:57:18Z")

</div>

This topic was automatically closed 540 days after the last reply. New replies are no longer allowed.
