For example, if we have something like this:
The unparser generates looks something like this (not that optional elements are treated as arrays):
When the SequenceCombinatorUnparser gets an event it could the Start(DIArray) of either of the elements, since the first one is optional. I think we need something similar to the ChoiceMap where based on the next element received, it can skip over some of the parsers. This avoids having to do any backtracking kindof work.