https://github.com/rust-lang/rust/issues/58733 ``` trait MyTrait { type Output; } impl<T> MyTrait for fn() -> T { type Output = T; } type Void = <fn() -> ! as MyTrait>::Output; ```