Update comments.
Add test case.
Remove named constants.
Replace "yield" instruction with "wait" instruction.
Make some type arguments optional.
Store the token pattern in a class attribute.
Fix comment.
Add tuples.
Make the "wait" instruction bind a name to the result.
Check for duplicate bindings.