change rank to type
make sequences a flag, not a type
top-level content never need be an array; is now object
provide comment with BNF-like expression structure
better bnf
reorg expression parsing, seq is optional part of regexs