pub fn separated_list0<P1, P2, R1>(
    sep: P1,
    f: P2
) -> impl Fn(ParseInput<'_>) -> ParseResult<'_, Vec<R1>>
where P1: Fn(ParseInput<'_>) -> ParseResult<'_, ()>, P2: Fn(ParseInput<'_>) -> ParseResult<'_, R1>,