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