pub fn clause<'a, FT: 'a, T>( term: FT) -> impl FnMut(Span<'a>) -> IResult<Span<'a>, Clause<T>> where FT: FnMut(Span<'_>) -> IResult<Span<'_>, T> + Clone,