trait ServerFn { type Output; fn run_body() -> impl Sized; } struct MyServerFn {} macro_rules! f { () => { impl ServerFn for MyServerFn { type Output = (); fn run_body() -> impl Sized {} } }; } f! {} fn problem>(_: T) {} fn main() { problem(MyServerFn {}); //~^ ERROR type mismatch resolving `::Output == i64` }