pub opaque type Lexer
pub fn new(source: String) -> Lexer
pub fn tokenize( lexer: Lexer, ) -> Result(List(token.Token), error.ParseError)