A parsing rule, consuming a prefix of the remaining input (a strict
one if `b` is `True`).
Totality: all recursion in the rules below runs over the strictly
shrinking character list via `SuffixAcc`. Since some nodes may be
empty (consuming nothing), every loop derives its strictness from a
separator it consumed itself (a comma, colon, dash, marker, or line
break) before recursing. Lookahead over blank and comment lines
(`skipToContent`) returns a non-erased, possibly-empty `Suffix`:
where a rule continues after such a skip without other consumption,
it matches `Same`/`Uncons` explicitly so the recursion goes through
a projection of its `SuffixAcc` argument.
Totality: total
Visibility: public export