```rust #[lang = "fn_once"] pub trait FnOnce<Args> { #[lang = "fn_once_output"] type Output; extern "rust-call" fn call_once(self, args: Args) -> Self::Output; } fn takes_fn_generic<F: FnOnce(i32) -> i32>(a: i32, f: F) -> i32 { f(a) } fn takes_fn_generic_where<F>(a: i32, f: F) -> i32 where F: FnOnce(i32) -> i32 { f(a) } ``` returns: ``` <source>:9:65: error: expected 'i32' got '<placeholder:>' 9 | fn takes_fn_generic<F: FnOnce(i32) -> i32>(a: i32, f: F) -> i32 { | ~~ ~~~ ^ <source>:13:79: error: expected 'i32' got '<placeholder:>' 13 | fn takes_fn_generic_where<F>(a: i32, f: F) -> i32 where F: FnOnce(i32) -> i32 { | ~~ ~~~ ```