Abstract Tokens instead of Integers
Statically ensure you can't use `peek' or `next' if no tokens were passed in