pub fn parser_with_layout<'a, 'arn: 'a, 'grm: 'arn, O, E: ParseError<L = ErrorLabel<'grm>> + 'grm>(
rules: &'arn GrammarState<'arn, 'grm>,
vars: VarMap<'arn, 'grm>,
sub: &'a impl Parser<'arn, 'grm, O, E>,
) -> impl Parser<'arn, 'grm, O, E> + 'a