But I think the "square bracket list" things only ever occur in value position, and the headers only ever occur in root position, so it's not that hard.