for consistency, require horizontal edges to enclose their names in parens too
add ABNF grammar definition to header