fn parse_function<'i, F>(
    parser: &mut Parser<'i, '_>,
    name: &str,
    f: F
) -> Result<FilterFunction, ParseError<'i>>
where F: for<'tt> FnOnce(&mut Parser<'i, 'tt>) -> Result<FilterFunction, ParseError<'i>>,