fn line<I, O, E: ParseError<I>, F>( parser: F, ) -> impl FnMut(I) -> IResult<I, O, E>where I: InputTakeAtPosition + Clone + Slice<Range<usize>> + Slice<RangeFrom<usize>> + Slice<RangeTo<usize>> + InputIter + InputLength + Compare<&'static str>, <I as InputTakeAtPosition>::Item: AsChar + Clone, F: Parser<I, O, E>,