pub fn ispan<'a, I, O, E, F>(
f: F,
) -> impl FnMut(I) -> IResult<I, Spanned<I, O>, E>where
I: ToString + InputLength + InputTake + Compare<&'static str> + InputIter + Clone + InputTakeAtPosition,
<I as InputTakeAtPosition>::Item: AsChar,
F: Parser<I, O, E>,
E: ContextError<I> + ParseError<I>,
O: Clone + FromStr<Err = SpaceErr>,