pub trait Tokenizer {
// Required methods
fn peek(&mut self) -> Result<Option<&TokenWithLoc>, SyntaxError>;
fn next(&mut self) -> Result<Option<TokenWithLoc>, SyntaxError>;
fn source<'a>(&'a self) -> &'a str;
fn location(&self) -> SourceLocation;
}