pub enum Sexpr<'a> {
Ident(&'a str),
}
fn map<'a, F: Fn(String) -> Sexpr<'a>>(f: F) {}
fn main() {
map(Sexpr::Ident);
//~^ ERROR type mismatch in function arguments