pub fn recover<'a, I: Clone, O: Sized, E: ParseError<I>>( parser: impl Fn(I) -> IResult<I, O, E>, original: I, ) -> impl Fn(I) -> IResult<I, O, E>