pub fn value_pattern<I: Span, O, E: ParseError<I>, F>(
    f: F
) -> impl FnMut(I) -> IResult<I, ValuePattern<O>, E>where
    I: InputLength + InputTake + Compare<&'static str>,
    F: Parser<I, O, E>,
    E: ContextError<I>,