pub fn var_val<F, I: Span, O>(f: F) -> impl FnMut(I) -> Res<I, VarVal<O>> + Copywhere F: FnMut(I) -> Res<I, O> + Copy,