fn gclause<'a>(
bullet: impl Parser<&'a str, &'a str, VerboseError<&'a str>>,
intro: impl Parser<&'a str, ClauseIntro, VerboseError<&'a str>>,
remainder: impl Parser<&'a str, ASTNode, VerboseError<&'a str>>,
) -> impl FnMut(&'a str) -> IResult<&'a str, ASTNode, VerboseError<&'a str>>