//@ check-pass trait Tag<'a> { type Type: ?Sized; } trait IntoRaw: for<'a> Tag<'a> { fn into_raw(this: *const >::Type) -> *mut >::Type; } impl Tag<'a>> IntoRaw for T { fn into_raw(this: *const >::Type) -> *mut >::Type { this as *mut T::Type } } fn main() {}