//@ run-pass #![allow(unused_variables)] use std::marker::PhantomData; fn main() { struct Symbol<'a, F: Fn(Vec<&'a str>) -> &'a str> { function: F, marker: PhantomData<&'a ()> } let f = |x: Vec<&str>| -> &str { "foobar" }; let sym = Symbol { function: f, marker: PhantomData }; (sym.function)(vec![]); }