Similar to EdgeRule, except that it checks if the two given types are balanced Usually you'd want to use this instead of EdgeRule
For an indefinite amount of things surrounded by two tokens
Only checks the last node
Checks for a list with T as the item and U as the delimiter T U T U => valid T U => valid T U T U T => valid T T U T => invalid
For a sequence with a given length
Only checks the first node
The rule interface is what all rules much extend from. Note that these don't have to be a template if you don't want them to be