:: Token
//Value tokens
- = IdentToken String // Identifier
- | NumberToken Int // Integer
+ = IdentToken [Char] // Identifier
+ | NumberToken [Char]// Integer
| CharToken Char // Character literal
//Keyword tokens
| VarToken // var keyword
| EqualsToken // ==
| AmpersandsToken // &&
| PipesToken // ||
+ | ArrowToken // ->
+ | EndOfFileToken // EOF
:: LexerOutput :== Either String [Token]