```rust #![feature(type_alias_impl_trait)] trait Trait { type Assoc; fn take_me(self); } impl<T> Trait for T { type Assoc = (); fn take_me(self) {} } type Tait = impl Trait; #[define_opaque(Tait)] fn bar() -> Tait::Assoc { // ERROR: this is ambig let _: Tait = (); } ```