pub fn lex_terminated_block<I: Span, E>(
    kind: TerminatedBlockKind
) -> impl FnMut(I) -> IResult<I, LexBlock<I>, E>where
    I: ToString + InputLength + InputTake + Compare<&'static str> + InputIter + Clone + InputTakeAtPosition,
    <I as InputTakeAtPosition>::Item: AsChar,
    I: ToString,
    I: Offset + Slice<RangeTo<usize>>,
    I: Slice<RangeFrom<usize>>,
    <I as InputIter>::Item: AsChar,
    E: ContextError<I> + ParseError<I>,